预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一、ADO简介 ADO(ActiveXDataObject)是Microsoft数据库应用程序开发的新接口,是建立在OLEDB之上的高层数 据库访问技术,请不必为此担心,即使你对OLEDB ,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBCAPI、DAO、RDO都 要容易使用,并不失灵活性。本文将详细地介绍在VC 下如何使用ADO来进行数据库应用程序开发,并给出示例代码。 二、基本流程 万事开头难,任何一种新技术对于初学者来说最重要的还是“入门”,掌握其要点。让我们来看看ADO数据库开 发的基本流程吧! (1)初始化COM库,引入ADO库定义文件 (2)用Connection对象连接数据库 (3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结 果记录集进行查询、处理。 (4)使用完毕后关闭连接释放对象。 1.COM库的初始化 我们可以使用AfxOleInit()来初始化COM库,这项工作通常在CWinApp::InitInstance()的重载函数中完成, 请看如下代码: BOOLCADOTest1App::InitInstance() { AfxOleInit(); } 2.用#import指令引入ADO类型库 我们在stdafx.h中加入如下语句:(stdafx.h这个文件哪里可以找到?你可以在FileView中的HeaderFiles 里找到) #import"c:\programfiles\commonfiles\system\ado\msado15.dll"no_namespace rename("EOF","adoEOF") 这一语句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会为我们生成 msado15.tlh,ado15.tli两个C++头文件来定义ADO库。 几点说明: (1)您的环境中msado15.dll不一定在这个目录下,请按实际情况修改 (2)在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。 msado15.tlh(405):warningC4146:unaryminusoperatorappliedtounsignedtype,result stillunsigned CAdoConnection类的定义 01.classCAdoConnection 02.{ 03.public: 04.CAdoConnection(); 05.virtual~CAdoConnection(); 06.voidOnInitADOConn();//连接数据库 07.BOOLExecuteSQL(_bstr_tbstrSQL);//执行InsertUpDateDelete 08._RecordsetPtr&GetRecordSet(_bstr_tbstrSQL);//执行查询 09.private: 10._ConnectionPtrm_pConnection;//添加一个指向Connection对象的指针 11._RecordsetPtrm_pRecordset;//添加一个指向RecordSet对象的指针 12.}; 13.//类的实现 14. 15.CAdoConnection::CAdoConnection() 16.{ 17.::CoInitialize(NULL);//初始化OLE/COM库环境 18.} 19.CAdoConnection::~CAdoConnection() 20.{ 21.//关闭记录集和连接 22.if(m_pRecordset!=NULL) 23.m_pRecordset->Close(); 24.m_pConnection->Close(); 25.::CoUninitialize();//释放程序占用的COM资源 26.} 27.voidCAdoConnection::OnInitADOConn()//连接数据库 28.{ 29.try 30.{ 31.m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象 32._bstr_tstrConnect="driver={SQLServer};Server=(local);DATABASE=数据库名 称;UID=sa;PWD=你的sa登陆密码;"; 33.m_pConnection->Open(strConnect,"","",adModeUnknown); 34.} 35.catch(_com_errore) 36.{