- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在VISUAL C 中用ADO进行数据库编程
在Visual C++中用ADO进行数据库编程
1. 生成应用程序框架并初始化OLE/COM 库环境
创建一个标准的MFC AppWizard(exe)应用程序,然后在使用 ADO 数据库的
InitInstance 函数中初始化OLE/COM 库 (因为ADO 库是一个COMDLL 库)。
本例为:
BOOLCAdotestDlg::OnInitDialog()
{
::CoInitialize(NULL);//初始化OLE/COM 库环境
}
程序最后要调用 ::CoUninitialize();//释放程序占用的COM 资源。
另外:
m_pRecordset-Close(); 注意!!!不要多次关闭!!!!!!!!!!!!
m_pConnection-Close();
m_pRecordset NULL;
m_pConnection NULL;
2. 引入ADO 库文件
使用ADO前必须在工程的stdafx.h 文件最后用直接引入符号#import 引入ADO库文
件,以使编译器能正确编译。代码如下:
#import C:\Program Files\common files\system\ado\msado15.dll no_namespace
rename(EOF,adoEOF)
ADO 类的定义是作为一种资源存储在ADODLL(msado15.dll)中,在其内部称为类型
库。类型库描述了自治接口,以及C++使用的COMvtable接口。当使用#import 指令
时,在运行时Visual C++需要从ADODLL 中读取这个类型库,并以此创建一组C++
头文件。这些头文件具有.tli 和.tlh 扩展名,读者可以在项目的目录下找到这两个文件。在
C++程序代码中调用的ADO 类要在这些文件中定义。
程序的第三行指示ADO对象不使用名称空间。在有些应用程序中,由于应用程序中的
对象与ADO 中的对象之间可能会出现命名冲突,所以有必要使用名称空间。如果要使用
名称空间,则可把第三行程序修改为:rename_namespace(AdoNS)。第四行代码将ADO
中的EOF(文件结束)更名为adoEOF,以避免与定义了自己的EOF 的其他库冲突。
3.利用智能指针进行数据库操作
在 CaboutDlg 头文件中定义两个ADO 智能指针类实例,并在对话框中加入一个
ListCtrl。
classCAdotestDlg :publicCDialog
{
_ConnectionPtrm_pConnection;
_RecordsetPtrm_pRecordset;
ClistCtrlm_List;
}
ADO 库包含三个智能指针:_ConnectionPtr、_CommandPtr 和_RecordsetPtr。
_ConnectionPtr 通常被用来创建一个数据连接或执行一条不返回任何结果的SQL 语句,如
一个存储过程。
_CommandPtr 返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和
SQL 语句。在使用_CommandPtr 接口时,可以利用全局_ConnectionPtr 接口,也可以在
_CommandPtr 接口里直接使用连接串。_RecordsetPtr 是一个记录集对象。与以上两种对象
相比,它对记录集提供了更多的控制功能,如记录锁定、游标控制等。
在使用ADO程序的事件响应中OnButton1加入以下代码:
voidCAdotestDlg::OnButton1()
{
m_List.ResetContent();
m_pConnection.CreateInstance(_uuidof(Connection));//初始化Connection 指针
m_pRecordset.CreateInstance(_uuidof(Recordset));//初始化Recordset 指针
try
{
m_pConnection-Open(DSN ADOTest,,,0);//连接叫作ADOTest 的ODBC 数据源
//注意:这是连接不需要用户ID 或密码的open 函数
// 否则形式为 -Open(DSN test;uid sa;pwd 123;,,,0);
// 执行SQL 语
文档评论(0)