《Windows核心编程》---ADO基础

孙鑫视频VC++深入详解学习笔记 <br />VC++深入详解学习笔记<br />Lesson1: Windows程序运行原理及程序编写流程<br />Lesson2: 掌握C++基本语法<br />Lesson3: MFC框架程序剖析<br />Lesson4: 简单绘图<br />Lesson5: 文本编程<br />Lesson6: 菜单编程<br />Lesson7: 对话框编程<br />Lesson9: 定制应用程序的外观<br />Lesson10: 绘图控制<br />Lesson11 图形的保存和重绘<br />Lesso 阅读详情

传统的ODBC技术只能访问关系型数据库,且访问速度慢,因此,微软推出了OLE DB(应用在数据库上的对象连接于嵌入)和ADO(ActiveX data Object),OLE DB和ADO都是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,大大提高了访问速度。同时,OLE DB和ADO不仅可以访问关系型数据库,还可以访问非关系型数据库。

 

ADO建立在OLE DB之上,ADO是一个DLE DB用户程序,使用ADO的应用程序都要间接地使用DLE DB。ADO简化了OLE DB,提供了对自动化的支持,使得像VBScript这样的脚本语言也能够使用ADO访问数据库。

ADO中有三个核心对象:

1)Connection对象

Connection对象表示到数据库的连接,它管理应用程序和数据库之间的通信。Recordset和Command对象都有一个ActiveConnection属性,该属性就是用来引用Connection对象的;

2)Command对象

Command对象用来处理重复执行的查询,或处理需要检查在存储过程调用中的输出或返回参数的值的查询;

3)Recordset对象

Recordset对象用来获取数据。Recordset对象存放查询的结果,这些结果由数据的行(记录)和列(字段)组成。每一列都存放在Recordset的Fileds集合中的一个Field对象中。

 

其他的对象包括:字段对象(Field)、记录对象(Record)、参数对象(Parameter)、错误对象(Error)、属性对象(Property)和流对象(Stream)。

1)Fields集合和Field对象:Recordset对象包含一个用于处理行集的各个Fields对象集合。行集中返回的每一列在Fields集合中都有一个相关的Field对象,它允许用户访问列名、列数据类型以及当前列中的实际值。

2)Parameters集合和Parameter对象:Command对象包含一个Parameters集合,它包含于命令有关的所有参数。Parameter对象代表参数或与基于参数化查询或存储过程的Command对象相关联的参数。

3)Errors集合和Error对象:Connection对象包含一个Errors集合。Error对象包含于单个操作有关的数据访问错误的详细信息。每个错误出现时,一个或多个Error对象将被放到Errors集合中,通过Error对象的属性可获得每个错误的详细信息。

 

ADO开发步骤分为:

1)引入ADO动态链接库;

2)初始化OLE/COM库环境;

3)用Connection对象连接数据源;

4)打开记录,进行数据操作;

5)程序退出,断开数据库连接。

 

在VC中利用ADO访问数据库时,需要导入ADO库(msado15.dll),方法是利用import指令将此动态链接库导入:

#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename ("EOF", "aceEOF")

上面代码no_namespace表示不使用命名空间,主要是为了访问方便,在程序中可以直接访问ADO提供的Connection、Command和Recordset这三个COM接口。rename表示将EOF改为aceEOF,EOF表示记录集的结尾,但由于文件也是以EOF结尾的,因此,为了避免冲突,在导入ADO库时,需要将EOF改为另一个名字,如aceEOF。

查询的关键代码如下:

CoInitialize(NULL);

_ConnectionPtr pConn(__uuidof(Connnection));

_RecordsetPtr pRs(__uuidof(Recordset));

pConn->ConnectionString="Provider=SQLOLEDB.1; Password=sa; Persist Security Info=True; User ID=sa; Initial Catalog=pubs";

pConn->Open("", "", "", adConnectUnspecified);

pRs = pConn->Execute("select * from authors", NULL, adCmdText);

 

while(!pRs->aceEOF)

{

       //输出字段,如pRs->GetCollect("name");

       ....

       pRs->MoveNext();

}

 

pRs->Close();

pConn->Close();

pRs.Release();

pConn.Release();

CoUninitialize();

 

我们也可以利用记录集智能指针对象直接执行SQL查询语句,从而获得记录集数据,例如,将上面代码pRs = pConn->Execute("select * from authors", NULL, adCmdText);替换为:

pRs->Open("select * from authors", _variant_t((IDispatch*)pConn),

       adOpenDynamic, adLockOptimistic, adCmdText);

即可。

 

我们同样可以利用Command智能指针对象来访问数据库:

CoInitialize(NULL);

_ConnectionPtr pConn(__uuidof(Connnection));

_RecordsetPtr pRs(__uuidof(Recordset));

_CommandPtr pCmd(__uuidof(Command));

pConn->ConnectionString="Provider=SQLOLEDB.1; Password=sa; Persist Security Info=True; User ID=sa; Initial Catalog=pubs";

pConn->Open("", "", "", adConnectUnspecified);

pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));

pCmd->CommandText="select * from authors";

pRs = pCmd->Execute(NULL, NULL, adCmdText);

while(!pRs->aceEOF)

{

       //输出字段,如pRs->GetCollect("name");

       ....

       pRs->MoveNext();

}

 

pRs->Close();

pConn->Close();

pCmd.Release();

pRs.Release();

pConn.Release();

CoUninitialize();

深入理解ADO技术在Windows 2000下的应用 本文将详细解读在Windows 2000环境下,通过ADO技术访问和操作不同数据源的过程和方法。内容涵盖了目录服务、索引服务器、Jet、ODBC驱动、Oracle、持久化记录集以及Site Server Search等数据提供者,并分析了ADO对象模型及其组成对象。同时,文章指出了ADO在文档支持方面存在的不足,并提供了一些编程实践和技巧。 阅读详情

相关推荐

深入掌握Windows ADO数据库编程技术

ActiveX Data Objects (ADO) 是一种编程技术,允许开发者使用编程语言,如 C++、Java 或者 Visual Basic,与各种数据源进行交互。它是微软推出的一种轻量级的、易于使用的数据访问方法,广泛应用于需要数据库连接和数据检索的Web和桌面应用程序中。OLE DB(对象链接与嵌入数据库)是一种低级的数据库访问技术,它提供了一种统一的接口,用于访问和存储不同种类的数据源,包括关系数据库、文本文件、电子邮件和其他任何数据源。

weixin_42466723的博客 858

ADO

微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。ADO被设计来继承微软早期的数据访问对象层,

teresa502的专栏 901

深入理解数据库与网络编程:Windows 2000编程探索

本文深入探讨了Windows 2000编程的多个关键领域,包括数据库编程、互联网与网络编程、以及COM技术。通过分析第2章至第4章内容,我们了解到如何使用SQL、ODBC和ADO访问数据库,实现数据的增删改查操作。同时,第19章和第20章的内容揭示了互联网支持下的编程细节,展示了如何利用Winsock API和ActiveX控件进行网络通信。此外,COM和COM+技术的介绍为开发者提供了面向对象编程的深入理解,而Windows 2000中的COM新特性则提供了更高效的编程接口。

weixin_31961675的博客 483

VC中使用ADO进行数据库操作

ADO技术简介    ADO是为MS的强大的数据访问接口 OLE DB 设计的,上一个便于使用的应用程序层。 OLE DB 为任何数据源都提供了高性能的访问,包括:关系型数据库、非关系型数据库、电子邮件、文件系统、文本和图形以及自定义业务对象等。    ADO 2.0 实际上是基于 MSADO15.DLL 这个动态链接库的,这个库文件的名字虽然和 ADO 1.5 的一样,但是它实现了更新的

唐昊的专栏 5688

VB.NET编程全方位教程及数据库集成

Visual Basic .NET(通常简称为VB.NET)是微软公司在.NET框架基础上开发的一种面向对象的编程语言。自Visual Basic 6.0发展而来,VB.NET继承了其易学易用的特点,同时加入了.NET的跨平台性和面向对象的特性。VB.NET广泛应用于Windows平台的桌面应用程序开发,其与.NET框架的紧密集成也为开发者提供了强大的支持。函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。

weixin_30248619的博客 794

深入理解C#编程与软件开发实践

首先,要了解C#(读作“C sharp”)语言的历史。C#是由微软公司于2000年发布,并随着.NET框架一同开发的高级、面向对象的编程语言。其设计初衷是结合C和C++的开发效率以及Visual Basic的易用性。接下来,我们看看C#的语言特点。它是一种静态类型、强类型、面向对象和组件导向的编程语言。C#的特点使其广泛应用于企业级应用、游戏开发(特别是Unity游戏引擎)以及Web开发等领域。面向对象编程是一种编程范式,它的核心概念包括类(Class)和对象(Object)。

weixin_32673065的博客 1021

ADO入门(上)

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 730

VB6.0官方帮助文档CHM版 可离线运行

Visual Basic 6.0(VB6.0)集成开发环境(IDE)包含代码编辑器、窗体设计器、对象浏览器和项目资源管理器四大核心模块。安装后需配置运行时库,确保开发与目标机兼容性。

weixin_42350014的博客 1040

要从事MFC软件开发,需要掌握一套从基础语言到框架核心,再到进阶能力的系统性知识

虽然其学习曲线陡峭,但在金融、工业控制等需要高性能和高稳定性的领域,MFC依然是主流选择,经验丰富的开发者仍有很强的市场竞争力。要从事MFC软件开发,需要掌握一套从基础语言到框架核心,再到进阶能力的系统性知识。这是MFC开发的重点,面试中高频出现。理解MFC封装的下层机制。总的来说,MFC开发是一项。区分中高级工程师的关键。这是MFC开发的基石。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 30

Java中通过ADO连接数据库

Java中通过ADO连接数据库

VC下利用CADO Class(ado2.cpp和ado2.h)和DataGrid分页显示数据库access内容

本文主要初步介绍在VC6环境下利用CADO class,datagrid分页显示数据。 1、用VC操作数据库是非常麻烦的,网上关于VC下利用ADO和datagrid操作数据库的教程也很多,但无非是相互抄袭。 2、ADO使用起来麻烦,然而一个老外写的ADO Classes我感觉还是挺好用的。包括两个文件ado2.h和ado2.cpp,而网上关于使用这个类进行ADO数据库操作的文章不多。 3、VC6.0下的datagrid貌似没有.net的那么强大,也没有VB6那么好用。连分页都显得麻烦,ADO自带的虚拟分页功能好像在datagrid上不好使。更要命的是,MSDN上的参考文献主要是针对VB的。 4、虽然VC6确实已经落伍不少,不过其经典性还是很明显的。而且网络资源也比较多,适合初学者尽快熟悉掌握VC开发。

VB.NET数据库编程基础教程

众所周知,VB.NET自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的。其中,ADO.NET又是.NET FrameWork SDK中重要的组成部分。要了解VB.NET的数据库编程,首先要明白ADO.NET的工作原理以及相关的对象、方法、属性。本文将结合具体实例为你简单介绍ADO.NET数据库访问对象以及VB.

chinaherolts2008的博客 3366

C++ windows 连接池 ado

C++ vs windows ado 数据库连接池,可用。我就分享了。

C#官方文档及上机实验总结

C#编程指南 CSharp Language Specification在电脑中的位置:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC#\Specifications\2052 实验课次 周次 日期 内容 1 4 2016年03月14日 ...

weixin_30466039的博客 209

使用ADO进行数据库开发

说明如何使用ADO进行数据库开发,同时提供DAO开发数据库的代码

windows ADO数据库编程技术

windows ADO数据库编程技术 本文内容包括 ADO对象、集合、方法、数据库事件、属性 ADO与OLE DB ADO VC++ 扩展 SQL

上一篇: 《Windows核心编程》---内存映射文件基础
下一篇: 《Windows核心编程》---内核对象和进程基础
ACE1985
博客等级 码龄17年 1307粉丝 308原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值