ADO的底层是OLE DB,所以不仅能访问关系型数据库,也能访问非关系型数据库,更是现在最快速的数据库访问中间层。
1.ADO主要对象介绍
ADO对象包括:Connection Object(连接对象)、Command Object(命令对象)、RecordSet Object(记录集对象)、Field Object(字段对象)、Record Object(记录对象)、Error Object(错误对象)、Parameter Object(参数对象)、Property Object(对象)和Stream Object(流对象)。其中最为重要的3个对象是连接对象、命令对象和记录集对象。
Connection Object:代表了一个和数据源的连接,这和MFC odbc中创建数据源连接的CDatabase类非常相似。连接对象提供了对数据库的操作,但是它不返回数据库操作之后的记录集,这是和命令对象不同的一点。主要方法:Open(),Execute(),分别用来打开连接和执行SQL语句。
Command Object:用来处理数据库的一些操作,在某些方面具有和连接对象相同的功能,例如都可以执行SQL语句以及存储过程,不过命令对象可以返回带有记录集的结果。主要方法:Execute(),用来执行SQL语句。
RecordSet Object:代表了一个记录集,和MFC odbc中的CRecordset有些相似,用来访问记录集,能方便地实现记录的添加、修改和删除操作。主要方法:Open()用来打开记录集,还有AddNew(),PutValue(),Delete(),Update()等操作记录的方法。
在使用这3个对象时,需要定义与之对应的3个智能指针,分别为_ConnectonPtr,_CommandPtr和_RecordsetPtr,然后调用它们的CreateInstance方法进行实例化。
2._bstr_t和_variant_t类
在利用ADO时,_bstr和_variant_t两个类很有用,可以省去BSTR和VARIANT类型转换的麻烦。
COM编程不使用CString类,因为COM必须设计成跨平台,这就是VARIANT变量数据类型的来历,它是一个巨大的union联合体,几乎包含了所有的数据类型。BSTR类型是用来处理COM中的字符串的。
_variant_t类和_bstr_t类对VARIANT和BSTR进行了封装,允许用户简单地对其进行强制转换。
3.引入数据库
在VC中使用ADO,需要引入ADO库,可以在stdafx.h中包含
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace
rename("EOF","adoEOF")
在使用应用程序向导时,选择Automation选项,使程序能够支持“自动化”方式。
4.数据库的连接
定义连接对象:
_ConnectionPtr m_pConnection;
m_pConnection.CreateInstance(_uuidof(Connection));
调用Connection对象的Open方法创建数据库的连接。
HRESULT Open(_bstr
5.查询记录
定义记录集对象:
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance(_uuidof(Recordset));
调用Recordset对象的Open方法打开记录集。
获取记录的字段值的方式,GetCollect(),GetItem().
6.添加、修改和删除记录
可以使用连接对象(Connection Object)的Execute()方法,也可以使用命令对象(Command Object)的Execute()方法,执行相应的SQL语句来实现。另外也可以使用记录集对象(Recordset Object)调用相应的函数,最后调用Update()方法来操作记录。