免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1520 | 回复: 8
打印 上一主题 下一主题

如何在UNIX下实现跨数据库操作? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-08 14:56 |只看该作者 |倒序浏览
现在我们准备在unix/c++ 下开发一个企业级应用程序,需要访问数据库,由于我们的客户很多,
并且以前他们已经实现了不同程度的信息化,也就是说,他们有的使用的数据库是不同的(如Oracle,Informix
SQL Server等等),如何写一个类封装访问数据库的操作,通过配置文件记录用户的数据库类型,如何实现,用户使用不同
使用不同的数据库的时候,只需要修改配置文件中的的配置信息,而不修改程序呢?

论坛徽章:
0
2 [报告]
发表于 2003-07-08 15:08 |只看该作者

如何在UNIX下实现跨数据库操作?

1 使用ODBC
这是最简单也是效率低的办法

2  自己写数据库连接库 就是像中间件那样
论坛FTP提供都mengwg 兄自己做过一个
你可以到它论坛上问问

论坛徽章:
0
3 [报告]
发表于 2003-07-08 16:21 |只看该作者

如何在UNIX下实现跨数据库操作?

给你一个小小的提示,上层封装一个统一接口,底层自己用各种数据库的最底层的API来实现
我自己写了一个跨Win32/Linux/Solaris的DBAPI
(cross platform and cross database API)
提供Oracle/MySQL/Sybase/MSSQL四种数据库的高性能纯C API统一接口(类似ODBC)
+异种数据库的多重连接池+自动复制....

原帖由 "bovy" 发表:
现在我们准备在unix/c++ 下开发一个企业级应用程序,需要访问数据库,由于我们的客户很多,
并且以前他们已经实现了不同程度的信息化,也就是说,他们有的使用的数据库是不同的(如Oracle,Informix
SQL Server等等..........

论坛徽章:
0
4 [报告]
发表于 2003-07-08 16:38 |只看该作者

如何在UNIX下实现跨数据库操作?

给你一个小小的提示,上层封装一个统一接口,底层自己用各种数据库的最底层的API来实现
我自己写了一个跨Win32/Linux/Solaris的DBAPI
(cross platform and cross database API)
提供Oracle/MySQL/Sybase/MSSQL四种数据库的高性能纯C API统一接口(类似ODBC)
+异种数据库的多重连接池+自动复制....

论坛徽章:
0
5 [报告]
发表于 2003-07-09 19:52 |只看该作者

如何在UNIX下实现跨数据库操作?

[quote]原帖由 "snowpy"][/quote 发表:
     哦,
你使用的是那种与语言呢?能所得具体一点么
?

我的EMAIL:LEEMINGJUN@MSN.COM

论坛徽章:
0
6 [报告]
发表于 2003-07-09 21:26 |只看该作者

如何在UNIX下实现跨数据库操作?

另外是运行时指定还是编译时指定呢

如果编译时指定的话

只要为每种数据库写一个操作接口

连接时指定连接的库就可以了

如果是运行时指定可能比较难
因为数据库的接口会有重复的时候

当然如果使用c++的话可以使用名字空间或类的方法限制

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2003-07-10 13:06 |只看该作者

如何在UNIX下实现跨数据库操作?

偶,一般用c来写,接口可以统一,只是在不同的数据库系统中连接不同的数据库库文件就可以了。

如果接口不同一,也没关系,和统一一样。只是连接的库不同而已。

接口的统一与否,带来的好处是程序的维护、更新方便,这个于数据库系统没什么关系。

论坛徽章:
0
8 [报告]
发表于 2003-07-10 13:32 |只看该作者

如何在UNIX下实现跨数据库操作?

上层接口用C++,底层实现用C
你可以使用各种数据库的纯C接口
原帖由 "bovy" 发表:
    哦,
你使用的是那种与语言呢?能所得具体一点么
?

我的EMAIL:LEEMINGJUN@MSN.COM

论坛徽章:
0
9 [报告]
发表于 2003-07-10 13:36 |只看该作者

如何在UNIX下实现跨数据库操作?

各种数据库的底层接口并没有重复的函数名字
我觉得用NAMESPACE挺混乱的
把支持的.A,.SO LINK进去就行了,最多是主程序大一点而已

原帖由 "无双" 发表:
另外是运行时指定还是编译时指定呢

如果编译时指定的话

只要为每种数据库写一个操作接口

连接时指定连接的库就可以了

如果是运行时指定可能比较难
因为数据库的接口会有重复的时候

当然如果使用c++?.........
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP