ADO第一次亲密接触-ADO开发实践之一

一、ADO简介

ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易使用,并不失灵活性。本文将详细地介绍在VC下如何使用ADO来进行数据库应用程序开发,并给出示例代码。

二、基本流程

万事开头难,任何一种新技术对于初学者来说最重要的还是“入门”,掌握其要点。让我们来看看ADO数据库开发的基本流程吧!

(1)初始化COM库,引入ADO库定义文件

(2)用Connection对象连接数据库

(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。

(4)使用完毕后关闭连接释放对象。

准备工作:

为了大家都能测试本文提供的例子,我们采用Access数据库,您也可以直接在我们提供的示例代码中找到这个test.mdb。

下面我们将详细介绍上述步骤并给出相关代码。

【1】COM库的初始化

我们可以使用AfxOleInit()来初始化COM库,这项工作通常在CWinApp::InitInstance()的重载函数中完成,请看如下代码:

BOOL CADOTest1App::InitInstance()
 {
 AfxOleInit();
 ......
【2】用#import指令引入ADO类型库

我们在stdafx.h中加入如下语句:(stdafx.h这个文件哪里可以找到?你可以在FileView中的Header Files里找到)

#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

这一语句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会为我们生成msado15.tlh,ado15.tli两个C++头文件来定义ADO库。

几点说明:

(1) 您的环境中msado15.dll不一定在这个目录下,请按实际情况修改

(2) 在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。

msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned

【3】创建Connection对象并连接数据库

首先我们需要添加一个指向Connection对象的指针:

_ConnectionPtr m_pConnection;

下面的代码演示了如何创建Connection对象实例及如何连接数据库并进行异常捕捉。

BOOL CADOTest1Dlg::OnInitDialog()
 {
 CDialog::OnInitDialog();
 HRESULT hr;
 try
 {
 hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
 if(SUCCEEDED(hr))
 {
 hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///连接数据库
 ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
 }
 }
 catch(_com_error e)///捕捉异常
 {
 CString errormessage;
 errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
 AfxMessageBox(errormessage);///显示错误信息
 }

在这段代码中我们是通过Connection对象的Open方法来进行连接数据库的,下面是该方法的原型

HRESULT Connection15::Open ( _bstr_t ConnectionString, _bstr_t UserID, _bstr_t Password, long Options )

ConnectionString为连接字串,UserID是用户名, Password是登陆密码,Options是连接选项,用于指定Connection对象对数据的更新许可权,

Options可以是如下几个常量:

adModeUnknown:缺省。当前的许可权未设置

adModeRead:只读

adModeWrite:只写

adModeReadWrite:可以读写

adModeShareDenyRead:阻止其它Connection对象以读权限打开连接

adModeShareDenyWrite:阻止其它Connection对象以写权限打开连接

adModeShareExclusive:阻止其它Connection对象打开连接

adModeShareDenyNone:允许其它程序或对象以任何权限建立连接

时间: 2024-09-17 04:38:31

ADO第一次亲密接触-ADO开发实践之一的相关文章

《SAP HANA平台应用开发》—第2章2.2节第一次亲密接触

2.2 第一次亲密接触2.2.1 几个系统用户SAP HANA服务器安装好以后,表2-1中所示的3个用户都是需要提交到SAP HANA系统的管理和运维人员.表2-1 重要的用户用户名 类型 说明root OS用户 SUSE Linux操作系统root用户,用于软件升级.安装等adm OS用户 这个SAP HANA系统实例的管理用户system HANA系统用户 SAP HANA数据库的管理员 root用户是SAP HANA软件上运行的SUSE Linux操作系统的用户,在安装SAP HANA软件

与Manpower的第一次亲密接触

昨天收到Lisa的邀请,与http://www.aliyun.com/zixun/aggregation/14264.html">Manpower负责互联网猎头服务的几个朋友见面聊了聊互联网,因此才有幸与这家国内顶尖的猎头公司有了一次亲密接触.虽然不少猎头跟11544.html">我联系过,但大都仅限於网上的接触.像今天这样多猎头朋友面对面的沟通和交流,还是第一次. Manpower位于 王府井地铁站附近的东方广场,周围环境非常好.Lisa比照片上看起来更年轻也更漂亮,是一

与吴佩慈的第一次亲密接触

     刚在<杜拉拉升职记>的荧幕上邂逅了"九头身美女"吴佩慈,没想到转眼间就在深圳富安娜总部跟她来了一次"亲密接触".佩慈演绎的"破茧成蝶实现美丽蜕变",令在场的粉丝激动不已.              发布会上,随着一段"茧破蝶变"的串场视频上映,全场的灯光也悄然变暗,当林总.吴总启动了象征魔法的"蝴蝶杖",花海般的现场顿时飞来了几只蝴蝶,它们翩翩起舞,像是在欢迎它们的蝴蝶仙子.终于,在千

亲密接触ADO.NET v2.0

ado 随Whidbey发布的新一代ADO.NET有一些伟大的特征,这将使我们开发人员的生活变得更轻松一点点.下面我向大家介绍ADO.NETv2.0的一些特征. 一.多活动结果集(MARS:Multiple Active Results Sets)允许一个连接支持多个并发命令和多个打开的结果集.你能通过一个查询打开一个结果集,并且在前一个仍然被打开及访问的情况下,你仍然可以在同一个连接上执行各种命令. 二.查询和打开数据库连接的异步操作.新版本的ADO.Net提供了BeginExecuteRea

移动开发:第一次亲密接触移动数据库

移动数据库这个概念,在五年前也许很多人闻所未闻.但是现在,其具体的应用已经十分广泛.刚接触这个概念的读者可能会疑惑,什么是移动数据库呢?简单地说,数据并不是纯粹地存储在服务器或PC机上的,也可以存放在内存和处理性能受限的移动设备上.这些安装在移动设备上,用来管理和操作数据的系统就是所谓的移动数据库. 很多情况下都需要在移动设备上储存一些数据.在移动数据库还没有诞生前,所有的数据都是存放在文件中,当数据量比较大时,对数据进行检索.删除等操作的效率是非常低下的.现在很多公司考虑到移动设备的多样性,普

淘侠客:我与GG的第一次亲密接触

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 大家好,我是淘侠客,今天来谈谈GG帐号的申请,先说说我吧,我做GG可以说是在07年的下半年才开始接触,那个时候申请是非常简单的,但是当时无知,没有多申请几个呵呵,那个时候申请超级简单,用新浪博客.和讯博客都能通过,到后来第三方博客不能通过了,GG的Blogger是可以通过GGAD的审核的,毕竟是GG自己门下的博客服务,现在Blogger大陆是

我与百度有啊的第一次亲密接触

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 昨天傍晚的时候收到一条短信,内容大概是: "亲爱有商户,百度有啊于2008年10月28日正式上线,敬请光临-.."因为之前自已就注意百度有啊很久了.也先期注册了个帐号.只是有啊还没有认证通过. 于是就深入百度有啊来个第一次深度的接触. 第一感觉:绿色版的淘宝.没有让我们眼前一亮的功能. 第二感觉:产品比较丰富,尽管刚上线.

Windows 7与EeePC的第一次亲密接触

LAPTOP杂志日前就成功在一台华硕Eee PC 1000H上安装了Windows 7 Ultimate Pre-Beta版.在这台只有Atom N270 1.6GHz处理器,1GB内存的Eee PC上,Windows 7运行良好,和Vista Basic的情况差不多,只有部分驱动目前还没办法搞定. 从启动时间来看,Windows 7在Eee PC上启动只需58秒,比Windows XP还要快,之比该机预装的Linux系统40秒的成绩慢一些. 实际使用状况来看,同时使用Skype聊天,WordP

Struts:与Tiles框架的第一次亲密接触

一.如何使用Tiles框架 1.添加jar包,struts已经集成 2.配置struts-config中的plus-in属性 3.配置web.xml中的taglib属性,将tiles标签配进去 4.写Tiles的配置文件tiles-def.xml 5.根据tiles-def.xml写布局,布局其实就是一个.jsp,只不过包含了tiles:insert 6.写页面 7.不同的跳转方式: 1)增加新页面(每个页面需要写两个JSP,一个调用页面,一个框架中的页面) 2)用action的paremete