ado必备知识
ADO中最重要的对象有三个:Connection、Command和Recordset,它们分别表示连接对象、命令对象和记录集对象。
_ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。使用_ConnectionPtr接口返回一个记录集不是一个好的使用方法。对于要返回记录的操作通常用_RecordserPtr来实现。而用_ConnectionPtr操作时要想得到记录条数得遍历所有记录,而用_RecordserPtr时不需要。
_CommandPtr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。在使用_CommandPtr接口时,你可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。如果你只执行一次或几次数据访问操作,后者是比较好的选择。但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用全局_ConnectionPtr接口创建一个数据连接,然后使用_CommandPtr接口执行存储过程和SQL语句。
_RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局_ConnectionPtr接口,然后使用_RecordsetPtr执行存储过程和SQL语句。
使用ADO前的准备
1.引入ADO库文件
#import "C:\Program Files\common files\system\ado\m; no_namespace rename("EOF","EndOfFile") rename("BOF","FirstOfFile")2.初始化OLE/COM环境
::CoInitialize(NULL);// 初始化OLE/COM库环境ADO连接MS-SQLServer
_ConnectionPtr pMyConnect=NULL; HRESULT hr=(__uuidof(Connection))); if(FAILED(hr))return; _bstr_t strConnect="Provider=SQLOLEDB; Server=server_name;Database=database_name; uid=user_name; pwd=password;"; //连接数据库,一定要使用try和catch,否则即使出错也无法知道错误 try{pMyConnect->Open(strConnect,"","",NULL);} catch (_com_error &e) { AfxMessageBox()); }使用上述方法就可以连接到你的数据库了。这里sailor建议一定要使用catch,否则如果错误了就会返回类似R6010的错误,调试都不知道问题在哪里。