通过OLEDB读取SQLSERVER数据库的使用经验

本文分享了通过OLEDB从SQLSERVER数据库读取数据的经验,包括使用IDataInitialize创建DBInstance以支持连接池,设置客户端游标提高读取速度,一次性获取多条记录的策略,以及处理数据连续获取等问题。
摘要由CSDN通过智能技术生成

最近在写一个用OLEDB从SQLSERVER数据库读取数据的VC程序
特将使用的经验总结一下方便未知使用之者

1、首先建立数据库连接问题:
 你可以使用以前的CoCreateInstance 建立数据库初始化对象,如下:
  CoCreateInstance(_clsid, NULL, CLSCTX_INPROC_SERVER,
  IID_IDBInitialize, (void**)&_pDBInit);
 但这是一种过时的打开方法,在此基础上建立的数据库连接对象会有很多数据库属性都不会被支持的
 微软建议的做法是应该使用IDataInitialize 或者 IDBPromptInitialize 打开 ,如下
 hr = CoCreateInstance(CLSID_MSDAINITIALIZE, NULL, CLSCTX_INPROC_SERVER, IID_IDataInitialize, (void**)&_pIDataInitialize);
 hr = _pIDataInitialize->CreateDBInstance(_clsid, NULL, CLSCTX_INPROC_SERVER, NULL, IID_IDBInitialize, (IUnknown**)&_pDBInit);
 这样的方法建立的数据实例不仅可以利用一些比较新的属性,并且还支持数据连接池

2、数据连接池的问题:
 如果你用以前的那种方法打开的数据库连接是需要自己实现连接池的,而后者是自动支持数据连接池,但主要如下事项:
  1、要释放所有的接口指针,要记得随时随地release,不然它会认为你还存在引用,就不会自动服用连接了,如下:
  _pICT ->SetCommandText(DBGUID_DBSQL, t);
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值