VC通过ADO连接到ACCESS,SQLSERVER,ORACLE数据库(二)

这篇博客详细介绍了如何在VC中使用ADO库连接ACCESS, SQLSERVER, ORACLE数据库。重点讲解了智能指针类 '_ConnectionPtr' 用于创建数据连接,'_CommandPtr' 主要用于执行SQL语句,特别是存储过程,并返回_RecordsetPtr类型的记录集,而_RecordsetPtr则用于操作数据库记录和字段。文章还提到了隐式创建_ConnectionPtr可能带来的性能问题。" 88229951,5720599,Kubernetes上搭建Redis集群实战,"['Redis', 'Kubernetes', '数据库', '分布式', '缓存']
摘要由CSDN通过智能技术生成

1.库文件介绍

    在(一)中给出了ADO操作数据库时需要导入的动态库以及代码形式,入下所示:

#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("BOF", "adoBOF") rename("EOF", "adoEOF")  

    不同于我们常用的包含头文件,静态编译链接导出库的形式,ADO类中的定义是作为一种资源存储在msado15.dll中,是COM中的类型库。当我们需要使用时,利用#import指令,使得VS从msado15.dll中读取这个类型库,创建一组C++头文件,这些头文件的类型是.tli和.tlh。


     由于EOF这样的命名,容易发生冲突,比如文件指针的结尾为eof,所以为了规避ADO对象之间的命令冲突,通过rename来自定义自己的EOF。


2.智能指针

    1._ConnectionPtr

        _ConnectionPtr一般被用来创建一个数据连接以及执行一条不需要返回值的数据库语句。


    2._CommandPtr

         _ComanndPtr也可以用来打开一个数据连接,但是一般来说,这样的做法并不多见,大多数情况下都是利用_ConnectionPtr来创建一个连接,之后利用activation讲_CommandPtr与_CommandPtr绑定在一起。如果直接利用_CommandPtr直接打开数据连接,也不无可,只是这样做仍然创建了一个_ConnectionPtr对象,只是这样方式是隐式创建的。而且隐式创建的方法会导致如果多次利用_CommandPtr打开数据库连接时,隐式的_ConnectionPtr连接会不断的连接,断开数据源,从而使性能下降。

        _CommandPtr 执行数据库语句后会返回一个_RecordsetPtr类型的记录集。通过该记录集可以实现对数据库数据的操作。存储过程的输入和输出参数只能通过_CommandPtr来使用。


    3._RecordsetPtr

        _RecordsetPtr是一个记录集,就如之前所说,它存储着我们操作数据库的结果。我们可以通过它对每条记录,每个字段的数据进行读取,修改,插入等操作。

        _RecordsetPtr 也有执行SQL语句的功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值