ODBC/OLE DB/ADO之比较

bigwasp 2003-06-02 04:10:29
俺是工控行业,以前写过一个 DCS 到通用数据库的数据服务程序,采用了 ODBC API(未用 MFC ODBC)
因为要考虑到需兼容多种通用数据库,直接采用 Update 和 Insert 语句写数据库,未进行任何优化(如参数化 SQL 语句):
采用 DB2 时,Update 或 Insert 约为200条/s,
采用 SQL Server、Access、FoxPro ,Update 或 Insert 约为400条/s,
由于 DCS 数据常多达万个,其性能无法达到要求.

问:
1)如果采用 OLE DB 或 ADO 的方式(不经过 ODBC,而直接访问数据库的 OLE DB 驱动),速度会不会有数量级的提升?
2)如果采用 ADO,由于MDAC版本过多,在发行时是不是需要安装特定版本的MDAC?
3) 如要采用 OLE DB + ATL 方式,发行时是不是就不需要安装 MDAC?
4) 俺星期天跑遍了南京市的书店,未找到详细讲述 VC 下 OLE DB 编程的书籍,在网上也找不到多少相关资料,这又是为什么?
5) 俺是工控行业,做的软件应尽可能是绿色软件(不然用该软件的同事们会骂我的),用 OLE DB 后可不可以不制作安装程序?
...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigwasp 2003-06-03
  • 打赏
  • 举报
回复
谢谢楼上的朋友,
以前用ODBC时,构造SQL后直接执行,如果参数化SQL语句后,性能应可以提高一些,如果改用OLEDB,应可以再提高一些,这样也许俺的程序性能就可以满足要求了.
俺不想用 ADO, 如果要用它,那也应该在 VB 里用.
用VC的目的就是不想做安装程序,将*.exe + *.ini + ... 几个文件拷贝到任何一处都可以运行,多爽.

再次谢谢
康斯坦汀 2003-06-03
  • 打赏
  • 举报
回复
1.OLE DB和ADO比ODBC快,但不至于是数量级的提升。但采取一些技术可能能做到。
2.是的,这是采用ADO开发的一个问题。必须保证开发和使用环境MDAC版本的一致。
3.是的,但是OLE DB也是有版本的,高版本的OLE DB只是提供了一些不太用到的接口,
这些接口也不是所有OLE DB提供者都支持,所以,一般不需要特定版本的MDAC.
4.别找了,没有资料,因为我找的时间肯定比你多,这方面的资料世界范围内都很少。
5.一般说来是的,我正在用ole db开发,不用制作安装程序。

我的经验:用OLE DB是一件很麻烦的事,ATL对OLE DB的封装很不完全,很多东西都没
做,而且做了的还有bug, 但是即使是VS.net 2003也没有改善。
用ole db必须和ole db sdk打交道,而msdn里也少有资料,网上也没有。
相比之下,ADO(这个东西是对OLE DB的COM包装,并且完全是为了脚本语言设计的,其实
不适合在VC下用)就好多了,不仅包装完全,而且文档丰富(可以参考VB的),所以比较
好用。
如果你有时间研究OLE DB我看使用起来肯定比ADO好。







cpluser 2003-06-02
  • 打赏
  • 举报
回复
up

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧