ADO
c++ ado 使用参数
c++ ado 使用参数C++ ADO 使用参数在C++编程中,ADO(ActiveX Data Objects)是一种用于访问数据库的技术。
它提供了一种简单而强大的方法来连接和操作各种类型的数据库。
在使用ADO时,我们经常需要使用参数来执行查询和更新操作。
本文将介绍如何在C++中使用ADO参数,以及如何正确地配置和执行参数化查询。
首先,我们需要包含必要的头文件和命名空间,以便在C++代码中使用ADO。
以下是一个示例:cpp#include <iostream>#include <comdef.h>#include <string>#include <vector>#import "C:\Program Files\CommonFiles\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")using namespace std;在上述代码中,我们使用了`#import`指令导入了ADO库的类型信息。
这使得我们可以在C++代码中使用ADO的对象和方法。
接下来,我们需要创建一个ADO连接对象,并连接到数据库。
以下是一个示例:cpp_ConnectionPtr pConn = NULL;HRESULT hr = pConn.CreateInstance(__uuidof(Connection)); if (SUCCEEDED(hr)){try{pConn->Open("Provider=SQLOLEDB;DataSource=(local);Initial Catalog=MyDatabase;IntegratedSecurity=SSPI;", "", "", adConnectUnspecified);cout << "Connected to database" << endl;}catch (_com_error &e){cout << "Failed to connect to database: " <<e.ErrorMessage() << endl;}}else{cout << "Failed to create connection object" << endl;}在上述代码中,我们使用`CreateInstance`方法创建了一个连接对象,并使用`Open`方法连接到数据库。
ADO对象操作Access数据库关键技术
ADO对象操作Access数据库关键技术ADO对象操作Access数据库关键技术ADO(ActiveX Data Object)是目前Microsoft通用的数据访问技术。
ADO编程模型定义一组对象,用于访问和更新数据源,它提供了一系列方法完成以下任务:连接数据源、查询记录、添加记录、更新记录、删除记录、检查建立连接或执行命令时可能产生的错误。
一、ADO对象ADO是基于组件的数据库访问接口,可以来自多种数据提供者的数据进行读取和写入操作。
ADO的3个成员对象:(1)Connection对象(连接对象):建立应用程序与数据源的连接。
(2)Command对象(操作命令对象):在创建数据连接的基础上,利用Command 对象可以实现对数据源的查询、插入、删除、编辑修改及更新操作。
(3)Recordset对象(记录集对象):执行数据访问或SQL命令得到动态记录集,它被缓存在内存中。
ADO的3个集合对象:(1)Errors集合对象。
它依赖于Connection对象的使用。
(2)Parameters集合对象。
它依赖于Command对象的使用。
(3)Fields集合对象。
它依赖于Recordset对象的使用。
1、Connection对象该对象用来实现应用程序与数据源的连接。
只有连接成功后,Command对象和Recordset对象才能访问某个数据库。
2、Command对象该对象主要作用是在VBA中用SQL语句访问、查询数据库中的数据,可以完成Recordset对象不能完成的操作,如创建表、修改表结构、删除表、将查询结果保存为新表等。
3、Recordset对象Recordset对象的功能最常用、最重要,它可以访问表和查询对象,返回的记录存储在Recordset对象中。
通过该对象可以浏览记录、修改记录、添加新记录或者删除特定记录。
二、在Access中引用ADO对象在Access的模块设计时要想使用ADO对象,首先应该增加一个对ADO库的引用。
ado
使用Connection对象执行SQL查询 使用Connection对象执行SQL查询 Connection对象执行SQL
• • • 使用Connection对象的Execute方法还能够执行指定的查询、SQL语句、存储过程 或特定提供程序的文本等内容。 connection.Execute CommandText, RecordsAffected, Options 其中CommandText参数是一个字符串,包含要执行的SQL语句、表名、存储过程 或特定提供程序的文本。该参数的内容可以是标准的SQL语法或任何提供程序支持 的特殊命令格式。RecordsAffected是可选参数,长整型变量,提供程序向其返回 操作所影响的记录数目。Options也是可选参数,指示提供程序应如何为Command Text参数赋值,可以取下列符号常量之一。
• 4、检索记录 • 在SQL语言中,使用SELECT语句从表中检索数据, 该语句有许多子句,例如FROM子句指定从其中检索数 据的表,WHERE子句指定用于限制返回的行的搜索条 件,ORDER BY子句设置结果集的排序方式等。 • 最简单的例子: • SELECT column_name FROM table_name
• 3、添加记录 • 在SQL语言中,使用INSERT语句将一行新记录添加到表中。 基本语 • 法格式如下: • • INSERT [INTO] table_name [( column_list )] VALUES( expression , ... n )
• 其中table_name指定将要接收数据的表。INTO是一个可选的关 键字,可以将它用在INSERT和目标表之间。column_list是要 在其中插入数据的一列或多列的列表,必须用圆括号将column _list括起来,并且用逗号进行分隔。 • VALUES给出引入要插入的数据值的列表,必须用圆括号将值列 表括起来。expression是一个常量、变量或表达式。
ado
主要方法:
Open:打开到数据源的连接。 Close:关闭打开的对象和任何相关的对象。 Execute:执行指定的查询、SQL 语句、存储过程或提供者特有 的文本。
Command对象主要属性、方法 :
主要属性:
ActiveConnection :指示对象当前所属的 Connection 对象。 CommandText :指示要根据提供者发出的:执行 CommandText 属性中指定的查询、SQL 语句或存 储过程。
RecordSet 对象主要属性、方法 :
主要属性:
AbsolutePosition:指示Recordset对象的当前记录的序号位置。 BOF 和 EOF :指示当前记录位置位于 Recordset 对象的第一个 记录之前和最后一个记录之后。 MaxRecords:指示由查询返回给 Recordset 的最大记录数目。
ADO 简介
1、ADO是什么
ADO(ActiveX Data Object)是OLE DB数据访问方式 的一种主要对象模型。
2、ADO能做什么
• ADO最普遍的用法就是在关系数据库中查询一个表 或多个表,然后在应用程序中检索并显示查询结 果,可能还允许用户更改并保存数据。通过编程 使用ADO还可执行其他任务,包括: • 使用SQL查询数据库并显示结果。 • 通过Internet访问文件存储中的信息。 • 操作电子邮件系统中的消息和文件夹。 • 将来自数据库的数据保存在XML文件中。 • 允许用户查看数据库表中的数据并进行更改。
• Stream对象表示二进制或文本数据的数据流。例 如,XML 文档可以加载到数据流中以便进行命令 输入,也可以作为查询结果从某些提供者那里返 回。Stream对象可用于对包含这些数据流的字段 或记录进行操作。 • Parameter对象表示与基于参数化查询或存储过程 的Command对象相关联的参数。 • Field对象表示一列普通数据类型数据。每个 Field对象对应于Recordset中的一列。 • Property对象表示由提供者定义的ADO对象的特征。 ADO对象有两种类型的属性:内置属性和动态属性。 内置属性是指那些已在ADO中实现并且任何新对象 可以立即使用的属性。Property对象是基本提供 者所定义的动态属性的容器。 • Error对象包含有关数据访问错误的详细信息,这 些错误与涉及提供者的单个操作有关。
Ado连接及基本用法
ADO对象模型ADO主要包含7个对象,3个独立对象和依赖独立对象才能使用的4个非独立对象。
1、Connection:连接对象,用于创建数据源连接。
在使用其他对象之前必须先建立数据源连接,然后在连接对象上创建和使用其他对象。
2、Command:命令对象,用于执行动作查询,比如创建/删除数据库、执行返回数据集、删除记录等操作。
3、Recordset:记录集对象,保存来自基本表或命令对象返回的结果。
使用记录集对象几乎可以完成所有的数据集操作。
4、Field:字段对象,依赖于记录集对象使用,可使用Fields集合获得记录集汇总每个字段的信息。
5、Property:属性对象,每个连接对象、命令对象、记录集对象以及字段对象都有一个属性对象集合。
使用属性对象可以访问特定对象的主要信息,例如获得数据库中表的名称。
6、Parameter:参数对象,依赖于命令对象使用,用于为参数查询提供数据。
同时使用参数对象和命令对象,可使数据库队查询进行预编译,从而提高执行速度。
7、Error:错误对象,依赖连接对象使用。
使用Connection对象Connection对象主要用于创建数据库连接,任何数据库访问操作都建立在连接的基础上。
1、定义Connection对象建立ADO引用后,就可定义(声明)Connection对象,然后利用Connection对象创建Recordset对象或Command对象。
下面的语句定义并实例化一个Connection对象:Dim objCn As ConnectionSet objCn = New Connection也可直接实例化Connection对象,例如:Dim objCn As New Connection2、指定数据提供者实例化Connection对象后,就必须通过Provider属性指定一个数据提供者(可理解为驱动程序),例如:objCn.Provider=”SQLOLEDB” `指定数据提供者SQLOLEDB为Microsoft SQL Server OLE DB 数据提供者,用于访问SQL Server 数据库。
ADO的使用
开发流程-查询表 开发流程 查询表
【4】执行 】执行SQL命令并取得结果记录集 命令并取得结果记录集
//定义一个指向 定义一个指向Recordset对象的指针 定义一个指向 对象的指针 _RecordsetPtr m_pRecordset; //创建 创建Recordset对象的实例 创建 对象的实例 HRESULT hr; hr = pRentRecordset.CreateInstance(__uuidof(Recordset)); if(FAILED(hr)) { AfxMessageBox(_T("记录集实例化失败,不能初始化 记录集实例化失败, 控件! 记录集实例化失败 不能初始化List控件!")); 控件 return; }
开发流程-连接库 开发流程 连接库
Connection对象除 对象除Open方法外还有许多方法,我们先 方法外还有许多方法, 对象除 方法外还有许多方法 介绍Connection对象中两个有用的属性: 对象中两个有用的属性: 介绍 对象中两个有用的属性 ConnectionTimeOut与State: 与
ADO库包含三个智能指针 库包含三个智能指针: 库包含三个智能指针 _ConnectionPtr、_CommandPtr和_RecordsetPtr。 、 和 。
_ConnectionPtr通常被用来创建一个数据连接或执行一条不返回任何结果 通常被用来创建一个数据连接或执行一条不返回任何结果 语句, 的SQL语句,如一个存储过程。 语句 如一个存储过程。 _CommandPtr返回一个记录集。它提供了一种简单的方法来执行返回记录 返回一个记录集。 返回一个记录集 集的存储过程和SQL语句。在使用 语句。 接口时, 集的存储过程和 语句 在使用_CommandPtr接口时,可以利用全局 接口时 _ConnectionPtr接口,也可以在 接口, 接口里直接使用连接串。 接口 也可以在_CommandPtr接口里直接使用连接串。 接口里直接使用连接串 _RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供 是一个记录集对象。与以上两种对象相比, 是一个记录集对象 了更多的控制功能,如记录锁定、游标控制等。 了更多的控制功能,如记录锁定、游标控制等。
知识拓展:ADO数据访问技术
ADO数据访问技术摘自《Visual C++ + SQL Server数据库应用实例完全解析》启明工作室编著,人民邮电出版社出版,2006年4月第一版。
ADO的全称是ActiveX Data Objects。
Visual C++提供了丰富的数据库访问技术,如ADO、ODBC、DAO和RDO等,其中,ADO是最新的数据库访问技术,它是使用更为简单,而又更加灵活的对象模型。
对于新工程,应该使用ADO作为数据访问接口。
1. ADO数据模型Figure 6. ADO Object ModelADO提供执行以下操作的方式:➢连接到数据源。
➢指定访问数据源的命令,同时可带变量参数或优化执行。
通常涉及ADO的Command对象。
➢执行命令,例如一个SELECT脚本。
➢如果这个命令使数据库按表中行的形式返回,则将这些行存储在易于检查、操作或更改的缓存中。
➢适当情况下,可以把缓存行的更改内容写回数据库中,更新数据源。
➢提供常规方法检测错误(错误通常由建立连接或执行命令造成),涉及ADO的Error对象。
ADO编程模型提供了以下主要元素:1)连接。
通过“连接”可以从应用程序中访问数据源。
连接时必须指定要连接到的数据源以及连接所使用的用户名和口令等信息。
对象模型使用Connection对象完成连接功能。
2)命令。
可以通过已建立的连接发出命令,对数据源进行指定的操作。
一般情况下,可以通过命令在数据源中添加、修改或删除数据,也可以检索满足指定条件的数据。
在对象模型中使用Command对象来体现命令的概念。
3)参数。
在执行命令时可指定参数,参数可以在命令发布之前进行更改。
例如,可以重复发出相同的数据检索命令,但是每一次指定的检索条件不同。
对象模型用Parameter对象来体现参数概念。
4)记录集。
查询命令可以将查询结果存储在本地,这些数据以“行”为单位,返回市局的集合被称为记录集。
对象模型将记录集体现为Recordset对象。
ADO
VC中实现对ADO操作方法
• #import方法; • 利用MFC OLE的ClassWizard; • 通过Windows API中COM相关的函数。
在这三种方法中,#import是最方便的方法,它允许产生一个类似VB的类结构,使程序开发变得很方便
ADO编程应用 编程应用
• • • • • • • • • • • • 1.显式定义对象类型 2.绑定列到具体的字段对象 3.用SQL语句和存储过程进行数据更新 4.使用集合操作单条的SELECT语句 5.只查询所需要的数据 6.正确选择游标的位置、类型和锁方式 7.调整记录集对象的CacheSize属性 8.定义Command对象的参数 9.使用原始的OLE DB提供者 10.断开Connection连接 11.使用adExecuteNoRecords选项 12.使用session/connection缓冲池
下面的代码演示了如何使用#import在应用中实现对ADO的操作: #import “c:\program files\common files\system\ado\msado15.dll” \no_namespace rename ( “EOF”, “adoEOF” ) 重命名EOF是1。 通常来说,操作一个自动化对象需要定义和初始化一个用来操作的变量。可以通过使用智 能指针 (_com_ptr_t)的构造函数传递一个有效的CLSID或者是PROGID,也可以通过 _com_ptr_t::CreateInstance()方法来定义对象。具体代码如下所示: _ConnectionPtr Conn1( __uuidof( Connection ) ); 也可以采用下面的代码实现同样的功能: _ConnectionPtr Conn1 = NULL; //定义对象 HRESULT hr = S_OK; //创建实例 hr =Conn1.CreateInstance( __uuidof( Connection ) ); 推荐采用第二种方式,因为用第一种方式不能返回一个失败的HRESULT,所以也就不能判 断ADO连接对象是成功还是失败,以及失败的原因。注意这里的__uuidof( Connection)中 的Connection是在.tlh文件中定义的。通过把它传递给方法CreateInstance,就可以创建一 个有效的ADOConnection对象。 需要注意的是#import的no_namespace属性,它告诉编译器该类在不在一个单独的名字空 间中。使用no_namespace意味着不需要在初始化变量时引用名字空间。当然如果在应用 中需要导入多个类型库时,最好不要使用no_namespace,以免引起名字冲突。
ADO简单介绍
ADO使用详解Connection对象C o n n e c t i o n对象是使我们能与数据存储相连的对象。
只有C o n n e c t i o n对象才能指定希望使用的OLE DB提供者、连接到数据存储的安全细节以及其他任何连接到数据存储特有的细节。
不必显式创建一个C o n n e c t i o n对象以连接到数据存储。
没有C o n n e c t i o n对象,一样可以创建C o m m a n d、R e c o r d s e t和R e c o r d对象。
如果不创建自己的C o n n e c t i o n对象,A D O将会隐含地为你创建一个C o n n e c t i o n对象。
如果要对提供者运行多条命令,应该显式地创建一个C o n n e c t i o n对象,这比每运行一条命令就创建一个连接更有效。
除了为数据存储提供连接以外,C o n n e c t i o n对象允许针对数据存储执行命令操作。
这些命令可以是结构化的或存储的命令(例如,S Q L命令或一个存储过程),并且可以有选择地从数据存储中返回一些数据。
Command对象C o m m a n d 对象是对数据存储执行命令的对象。
看到这里读者可能会产生疑问,C o n n e c t i o n对象不也能这样做吗?是的,但是C o n n e c t i o n对象在处理命令的功能上受到一定的限制,而C o m m a n d对象是特别为处理命令的各方面问题而创建的。
当从C o n n e c t i o n对象中运行一条命令时,已经隐含地创建了一个C o m m a n d对象。
有时其他对象允许向命令传入参数,但在C o n n e c t i o n对象中不能指定参数的任何细节。
使用C o m m a n d对象允许指定参数(以及输出参数和命令执行后的返回值)的精确细节(比如,数据类型和长度)。
ado初学者文档
ADO(ActiveXDataObjects)是Microsoft提供和建议使用的新型的数据访问接口,具体实现为Automation。
这样,程序员可以在各种支持Automation的开发环境下方便地访问ADO对象,如VisualBasic、VisualC++、VisualJ++及Delphi 等。
ADO被实现为OLEDB之上的一个薄层,这使得ADO可以有更快的访问速度,更易使用,同时更节省资源。
值得注意的是,对于VisualStudio6.0的用户而言,现在提供的ADO2.0要比VisualStudio5.0时代的ADO1.5更加完整。
这意味着程序员可以更为广泛地使用ADO接口,甚至在所有的基于Windows平台的数据访问中使用它。
比如对RDS(前身是ADC)的支持,可以方便的构建高效的Web应用。
一、对ADO对象的主要操作对ADO对象的主要操作,同DAO、RDO库的实现基本相同。
主要包括6个方面:1.连接到数据源。
这是可选的、通常涉及ADO的Connection对象。
2.向数据源提交命令。
通常涉及ADO的Command对象。
在查询中可以与参数对象(Parameter)协同使用。
3.执行命令,比如一个SELECT脚本。
4.如果提交的命令有结果返回,可以通过ADO的Recordset对象对结果进行操作,数据存储在缓存中。
5.如果合适,可将缓存中被修改的数据更新到物理的存储上。
6.提供错误检测。
通常涉及ADO的Error对象。
以程序员的视角来看,ADO、DAO和RDO三者的对象名称不很相同。
但使用ADO对象要比DAO和RDO简单得多。
最主要的一点在于,程序员不用像在使用DAO和RDO那样要从对象模型的顶层开始一步步的创建子对象。
因此,ADO提供了一种更灵活的编程方式。
二、ADO中主要对象的功能Connection对象,表示了一个到数据源的会话。
使用Connection对象的成员,可以使用相应的属性打开到数据源的连接,设置游标的位置,设置默认的当前数据库,设置将使用的OLEDBProvider,直接提交SQL脚本等。
ODBC和ADO区别
统中必须有DBMS,但不需要驱动程序,不需要注册数据源,所以具有很好的可移植性。
VC++6中这两种技术所涉及到的MFC类:
MFC ODBC类包括CDatabase类 CRecordSet类 CRecoreView类 CFieldExchange类 CDBException类,具体说明请详见任何一本讲述数据库编程技术的参考书。
这么说吧,我们操作ADO,ADO则访问OLEDB(当然可以访问其他的,只要符合ADO接口),OLEDB查询ODBC(也可以不用找他)得到数据接口操作数据.
ODBC?ADO?OLEDB三者区别?
起初,出现的是odbc提供c的函数调用接口,定义了一组通用的数据库API,但速度比较慢,?
ole?db是微软的第三代组件结构,速度较odbc快,而ado是oledb的一个子集,是com组件,更快,更高效。?
注 ODBC 和ADO 具有相似的特征,如记录集和数据库对象,尽管MFC 利用这些对象的方式完全不同。
============================================================================
有一个地方绝对不能使用ADO。如果要访问16 位数据,就不能用ADO。不管你怎么想,都必须用ODBC。然而,几乎没有人还在使用16 位数据库了。大多数的新工程都会使用32 位接口,这意味着会有一个选择。老的工程已经有了嵌入代码的数据访问方法,所以你也实在没有必要在这里做决定。ODBC 的一点不足是,不能像以前使用ADO 那样跟踪事务。以Microsoft Jet引擎使用ADO 时,应该得到事务的工作区级的支持。ODBC 只提供数据库级的事务支持,这就是说,可以从几个不同的工作区跟踪事务(这使得调试非常困难,还可能导致其它类型的问题)。
ADO简介——精选推荐
ADO简介一、Active数据对象(ActiveDataObjects)ADO实际是一种提供访问各种数据类型的连接机制。
ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口。
可以使用任何一种ODBC数据源,即不止适合于SQLServer、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。
ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。
ADO 同时具有远程数据服务 (RDS) 功能,通过 RDS 可以在一次往返过程中实现将数据从服务器移动到客户端应用程序或 Web 页、在客户端对数据进行处理然后将更新结果返回服务器的操作。
RDS 以前的版本是 Microsoft Remote Data Service 1.5,现在,RDS 已经与 ADO 编程模型合并,以便简化客户端数据的远程操作。
二、ADO 提供执行以下操作的方式1.连接到数据源。
同时,可确定对数据源的所有更改是否已成功或没有发生。
2.指定访问数据源的命令,同时可带变量参数,或优化执行。
3.执行命令。
4.如果这个命令使数据按表中的行的形式返回,则将这些行存储在易于检查、操作或更改的缓存中。
5.适当情况下,可使用缓存行的更改内容来更新数据源。
6.提供常规方法检测错误(通常由建立连接或执行命令造成)。
在典型情况下,需要在编程模型中采用所有这些步骤。
但是,由于 ADO 有很强的灵活性,所以最后只需执行部分模块就能做一些有用的工作。
例如:将数据从文件直接存储到缓存行,然后仅用 ADO 资源对数据进行检查。
三、ADO 编程模型中的关键部分连接、命令、参数、记录集、字段、错误、属性、集合、事件。
1.连接通过“连接”可从应用程序访问数据源,连接是交换数据所必需的环境。
通过如Microsoft® Internet Information Server 作为媒介,应用程序可直接(有时称为双层系统)或间接(有时称为三层系统)访问数据源。
ADO简介
ADO简介简介ActiveXDataObjects(ADO)是微软最新的数据访问技术。
它被设计用来同新的数据访问层OLEDBProvider一起协同工作,以提供通用数据访问(UniversalDataAccess)。
OLEDB 是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。
ADO向我们提供了一个熟悉的,高层的对OLEDB的Automation封装接口。
对那些熟悉RDO的程序员来说,你可以把OLEDB比作是ODBC驱动程序。
如同RDO对象是ODBC 驱动程序接口一样,ADO对象是OLEDB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLEDB提供者(OLEDBprovider)。
目前,虽然OLEDB提供者比较少,但微软正积极推广该技术,并打算用OLEDB取代ODBC。
ADO向VB程序员提供了很多好处。
包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K 略小,大约是DAO3.5的Dao350.dll所占内存的60%)。
同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。
因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。
ADO针对客户/服务器以及WEB应用程序作了优化。
本文的目的是带你进入ADO广阔的世界并开始使用它。
在哪里能得到ADO?目前ADO1.5版已经可以从微软网站免费下载。
到目前为止,微软网站仍是你获取有关ADO 最新信息的最佳场所。
ADO1.5是作为OLEDBSDK的一部分提供的。
你可以从下面这个网址下载:/data/oledb/download.htm在下载之前请先确认OLEDBSDK提供的各项特性。
ADO介绍
ADO 教程在我们的 ADO 教程中,您将学到有关 ADO 的知识,以及如何使用 ADO 从您的网站访问数据库。
ADO 简介ADO 被用于从网页访问数据库。
您应当具备的基础知识在继续学习之前,您需要对下面的知识有基本的了解: WWW、HTML 以及对网站构建的基本了解 ASP(动态服务器页面) SQL(结构化查询语言)什么是 ADO?ADO 是一项微软的技术 ADO 指 ActiveX 数据对象(ActiveX Data Objects) ADO 是一个微软的 Active-X 组件 ADO 会随微软的 IIS 被自动安装 ADO 是一个访问数据库中数据的编程接口从 ASP 页面访问数据库从一个 ASP 页面内部访问数据库的通常的方法是: 创建一个到数据库的 ADO 连接 打开数据库连接 创建 ADO 记录集 从记录集提取您需要的数据 关闭记录集 关闭连接ADO 数据库连接在从某个网页访问数据之前,必须先建立一个数据库连接。
创建一个 DSN-less 数据库连接连接到某一个数据库的最简单的方法是使用一个 DSN-less 连接。
DSN-less 连接可被用于您的站点上的任何微软 Access 数据库。
假设您拥有一个名为 "northwind.mdb" 的数据库位于 "c:/webdata/" 的 web 目录中, 您可以使用下 面的 ASP 代码连接到此数据库:<% set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/webdata/northwind.mdb" %>注意,在上面的例子中,您必须规定微软的 Access 数据库驱动程序(Provider) ,以及此数据库在计算 机上的物理路径。
ADO相关知识归纳
ADO相关知识ADO是 ActiveX Data Object 的缩写,称为 ActiveX 数据对象,是微软提供的一种面向对象的数据库访问技术。
利用ADO对象,通过ODBC 驱动程序或 OLE DB 链接字符串,可实现对任意数据库的存取和访问。
ODBC 是 Open DataBase Connectivity 的缩写,称为开放式数据库链接,它相当于是一个数据库引擎,或者简单理解为是一种数据库驱动程序,可以通过它来存取各种不同类型的关系型数据库,而不必关心所存取数据库类型。
OLE DB 是微软用来替代 ODBC 的一种数据库访问技术。
ODBC 实现了同样的方法来存取各种不同类型的关系型数据库,对于非关系型数据库则无能为力,OLE DB 则是一种对关系型数据库和非关系型数据库均有效的一种数据库访问技术。
ADO 的对象模型ADO 提供了7个独立的对象,利用这些对象,可实现对数据库的存取在这7个对象中,Connection、Command 和 RecordSet 对象是整个ADO 的核心,通过Connection 对象与一个数据库建立连接,然后利用Command 对象执行查询,从而返回查询结果,并将结果(记录集)存入RecordSet 对象中,利用服务器端脚本,通过访问RecordSet 对象,遍可获得所查询到的记录内容。
除了 Command 对象可以执行查询外,另外,利用 Connection 对象的 Execute 方法和 RecordSet 对象的 Open 方法,也可以执行一个查询,从而返回一个记录集,因此,有3种方法可以获得记录集。
主要介绍利用ODBC驱动程序、OLE DB等多种方法连接数据库,然后可以对数据库进行相关操作。
1.数据库的连接方式1、 用 ODBC 驱动程序实现对数据库的访问访问 Access 数据库:访问未加密的数据库:connstr="DRIVER={Microsoft Access Driver(*.mdb)};DBQ=数据库名;"注:末尾的分号可要,也可不要。
ADO教程(初学者)
ADO初学者教程适合初学者()ADO好像也是深水一潭,但潭里的两条大鱼(Connection和Recordset)是餐桌上必不可少的佳肴。
没办法,撸胳膊,挽袖子,下水摸鱼吧!!发上来用老师的大作之一《ADO简明教案》供大家交流学习。
(这方面偶有晕呼呼的感觉,望坛中高手多发表高见)一、ADO的概念这一部分是不得不讲,却又很难讲清的部分,当你以后能熟练使用ADO的时候,你可能会把这些“概念”全部忘掉了,但如果你从未了解过ADO的这些概念,它会始终困扰你,甚至影响你继续学习的信心。
但是要想完全真正理解这些概念,对我们几乎是不可能的。
我的理论水平也非常有限,下面只就ADO涉及的最常用的概念给出一些尽可能“易于理解”的说明,首先声明:这些概念不是官方的严谨叙述,更象是“演义”,目的只是让初学的朋友知道“是那么回事”或者产生一个“朦朦胧胧的印象”,如果有对ADO相关理论感性趣的朋友,请参考MSDN(Microsoft Developer Network)的文档。
闲言少叙。
概念1:什么是ADO?ActiveX Data Objects:ActiveX 数据对象我从未见过有人给出“ActiveX”的汉语翻译,不过仅从后面的两个英文单词,我们已经可以知道ADO是一种数据对象。
数据对象嘛,其作用就是用来管理数据的。
当然管理数据的不一定非得是数据对象,数据对象也不是可以管理所有的数据。
(绕口令呵)对数据的管理我们可以不使用任何对象,而只使用普通的代码来完成;也可以使用数据对象来做,至于选用何种方式,主要取决于哪种方式更适合(有时也取决于写代码者的偏好)!问题是,怎么知道哪种方式更适合呢,当然你必要要了解各种方式,今天我们要了解的是ADO!在这个概念中,我已经初步回答了ADO的作用。
更多的进一步的回答我放在后面的实战中:-)。
概念2:什么是ActiveX?在很早以前,我曾经问过我的一个朋友:ActiveX是什么意思?他回答是:一种商标的名字。
ADO技术简介(完全攻略)
ADO技术简介(完全攻略)ADO技术简介ADO是为MS的强大的数据访问接口 OLE DB 设计的,上一个便于使用的应用程序层。
OLE DB 为任何数据源都提供了高性能的访问,包括:关系型数据库、非关系型数据库、电子邮件、文件系统、文本和图形以及自定义业务对象等。
ADO 2.0 实际上是基于 MSADO15.DLL 这个动态链接库的,这个库文件的名字虽然和 ADO 1.5 的一样,但是它实现了更新的接口。
ADO 2.0 里的新技术有:1、异步操作和事件模型2、数据集的持续性3、层次化的数据传输ADO特点概述用ADO访问数据元的特点可概括如下:1.易于使用,可以说这是ADO最重要的特点之一。
ADO 是高层数据库访问技术,相对与ODBC来说,具有面性对象的特点。
同时,在 ADO 对象结构中,对象与对象之间的层次结构不适非常明显,这会给编写数据库程序带来更多的便利。
比如,在应用程序中如果要使用记录集对象,不一定要先建立连接、会话对象,如果需要就可以直接构造记录集对象。
总是,已经没有必要去关心对象的构造层次和构造顺序了。
2.可以访问多种数据源。
和 OLE DB 一样,使应用程序具有很好的通用性和灵活性。
3.访问数据源效率高。
4.方便的Web应用。
ADO 可以以 ActiveX 控件的形式出现,这就大大方便了Web应用程序的编制。
5.技术编程接口丰富。
ADO 支持 Visual C++、Visual Basic、VBS、JS等。
ADO 的对象1.Connection用于表示和数据源的连接,以及处理一些命令和事务。
mand用于执行某些命令来进行诸如查询、修改数据库结构的操作。
3.Recordset用于处理数据源的表格集,它是在表中修改、检索数据的最主要的方法。
4.Field描述数据集中的列信息。
5.Parameter用于对传递给数据源的命令赋参数值。
6.Error用于承载所产生所无的详细信息。
7.Property通过属性,每个ADO对象借此来让用户描述和控制自身的行为。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ADO (ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。
例如,如果您希望编写应用程序从DB2或Oracle数据库中向网页提供数据,可以将ADO程序包括在作为活动服务器页(ASP)的HTML文件中。
当用户从网站请求网页时,返回的网页也包括了数据中的相应数据,这些是由于使用了ADO代码的结果。
象Microsoft的其它系统接口一样,ADO是面向对象的。
它是Microsoft全局数据访问(UDA)的一部分,Microsoft认为与其自己创建一个数据,不如利用UDA访问已有的数据库。
为达到这一目的,Microsoft和其它数据库公司在它们的数据库和Microsoft的OLE数据库之间提供了一个“桥”程序,OLE数据库已经在使用ADO技术。
ADO的一个特征(称为远程数据服务)支持网页中的数据相关的ActiveX控件和有效的客户端缓冲。
作为ActiveX的一部分,ADO也是Microsoft的组件对象模式(COM)的一部分,它的面向组件的框架用以将程序组装在一起。
ADO从原来的Microsoft数据接口远程数据对象(RDO)而来。
RDO与ODBC一起工作访问关系数据库,但不能访问如ISAM和VSAM的非关系数据库。
ADO 是对当前微软所支持的数据库进行操作的最有效和最简单直接的方法,它是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到你的Active Server 页面上。
可以使用ADO 去编写紧凑简明的脚本以便连接到Open Database Connectivity (ODBC) 兼容的数据库和OLE DB兼容的数据源,这样ASP 程序员就可以访问任何与ODBC 兼容的数据库,包括MS SQL SERVER、Access、Oracle 等等。
比如,如果网站开发人员需要让用户通过访问网页来获得存在于IBM DB2或者Oracle 数据库中的数据,那么就可以在ASP页面中包含ADO程序,用来连接数据库。
于是,当用户在网站上浏览网页时,返回的网页将会包含从数据库中获取的数据。
而这些数据都是由ADO代码做到的。
ADO是一种面向对象的编程接口,微软介绍说,与其同IBM和Oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。
为实现这一目标,微软在数据库和微软的OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。
开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。
ADO的一项属性??远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存。
作为ActiveX的一部分,ADO也是COM组件的一部分。
ADO 是由早期的微软数据接口??远程数据对象RDO演化而来的。
RDO同微软的ODBC一同连接关系数据库,不过不能连接非关系数据库。
ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。
对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。
如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DBprovider)。
目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。
ADO向VB程序员提供了很多好处。
包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll 的368K略小,大约是DAO3.5的Dao350.dll所占内存的60%)。
同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。
因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。
ADO针对客户/服务器以及WEB 应用程序作了优化。
二、ADO 事件ActiveX 数据对象(ADO) 是添加到Microsoft Active Server Pages (ASP) 的一套高级别接口,有利于服务器端与数据库的连接。
ADO 与低级别接口(OLE DB) 一起使用则有利于Microsoft Universal Data Access策略。
ADO 2.0 版可生成Visual Studio Analyzer 事件。
可使用这些事件跟踪分布式应用程序中的ADO 交互。
ADO 生成的Visual Studio Analyzer 事件事件事件描述事件数据ConnectionClose指示 ADO 要与 OLE DB 数据源断开连接。
无。
ConnectionOpen指示 ADO 正在连接到 OLE DB 数据源。
如果客户端提供,则为连接到数据源所用的连接字符串。
Find指示 ADO 客户端已调用 ADORecordset.Find函数。
“查找”操作的判据;根据该判据匹配记录。
GetRows指示 ADO 客户端已调用 ADORecordset.GetRows函数。
提取的行数。
QueryResult指示数据库已返回响应查询的结果集。
无。
QuerySend指示 ADO 正在执行命令。
该事件可由下列函数触发:Connection.ExecuteCommand.ExecuteConnection.<存储过程名>Recordset.Open构成查询的SQL语句。
RecordsetOpen指示 ADO 正在打开远程服务器上的记录集。
仅适用于三层方案。
打开记录集的源(通常为行返回的命令文本)。
Sort指示 ADO 准备筛选或对数据排序。
排序或筛选应用于记录集数据的判据。
Transaction Rollback指示 ADO 要中止当前本地事务。
返回真或假。
如果为真,则保持中止,即该事务中止后紧跟着开始另一事务。
如果为假,则不保持中止。
TransactionCommit指示 ADO 正在提交 OLE DB 提供程序上的本地事务。
返回真或假。
如果为真,则保留提交,即该事务提交后紧跟着开始另一事务。
如果为假,则不保留提交。
TransactionStart指示 ADO 正在开始 OLE DB 提供程序上的本地事务。
ADO 开始事务所基于的隔离级别。
隔离级别指示可看到其他事务所做更改的哪一级别。
三、在哪里能得到ADO?目前ADO1.5版已经可以从微软网站免费下载。
到目前为止,微软网站仍是你获取有关ADO 最新信息的最佳场所。
ADO1.5是作为OLE DB SDK的一部分提供的。
你可以从下面这个网址下载:/data/oledb/download.htm在下载之前请先确认OLE DB SDK提供的各项特性。
下载文件大约有15M,如果完全安装的话要占用80M的硬盘空间。
如果你只对ADO感举趣,就选择最小安装,这样只会占用你15M的硬盘空间。
关于ADO的网页在:/data/ado/adoinfo.htm.在这里你可以找到许多关于ADO的示例代码和文章,尤其是在"Workshop"系列的文章中。
你也可以从本站下载ADO2.5的帮助文件。
尽管OLE DB SDK提供自己的ADO帮助文件,你会发现ADO1.0的帮助文件更易于使用。
同时它还向你提供ADO对象模型的图示四、ADO是如何组织起来的?以前的对象模型,如DAO和RDO是层次型的。
也就是说一个较低的数据对象如Recordset 是几个较高层次的对象,如Environment和QueryDef,的子对象。
在创建一个QueryDef 对象的实例之前,你不能创建DAO Recordset对象的实例。
但ADO却不同,它定义了一组平面型顶级对象.最重要的三个ADO对象是Connection, Recordset和Command. 本文将主要介绍Connection和Recordset这两个对象。
每个Connection的属性定义了与数据源的连接。
Recordset对象接收来自数据源的数据。
Recordset可以与Connection一起起使用,先建立一个连接,然后获取数据。
尽管如此,Recordset也可以被单独创建,其Connection 参数可以在Open属性定义。
五、ADO 2.0有什么新特点?对于ADO1.5以前包括1.5的版本来说,从功着你可以通过这两种方法解决同样的问题;它不是指存在重命名的或者优化的功能相同的对象.因此,移植到ADO不是一个简单的事情.从另一方面来说,一旦你熟练掌握了RDO或DAO技术的话,学习ADO是件相当容易的事情.ADO 2.0的新特性包括事件处理,记录集的延续,分层目录结构指针和数据成形,分布式事务处理,多维数据,远程数据服务(RDS),以及对C++和Java的支持的增强.在钻研一些Visual Basic代码的时候将会见到所有的这些特性.当使用Visual J++时,我将举例说明新的Windows Foundation Classes(WFC)是如何支持ADO的.ADO的最让人激动的是在Visual Studio 6.0中的任何开发工具中你都可以找到对它的充分的支持.六、ADO 对象编程模型连接数据源(Connection),可选择开始事务。
可选择创建表示SQL 命令的对象(Command)。
可选择指定列、表以及SQL 命令中的值作为变量参数(Parameter)。
执行命令(Command、Connection 或Recordset)。
如果命令以行返回,将行存储在存储对象中(Recordset)。
可选择创建存储对象的视图以便进行排序、筛选和定位数据(Recordset)。
编辑数据。
可以添加、删除或更改行、列(Recordset)。
在适当情况下,可以使用存储对象中的变更对数据源进行更新(Recordset)。
在使用事务之后,可以接受或拒绝在事务中所做的更改。
结束事务(Connection)。
七、如何使用ADO?一旦安装了ADO,在VB的工程->引用对话框中你就可以看到象下图所示的东西了:选择"ActiveX Data Objects 1.5 Library" (ADODB).在其下的"ADO Recordset 1.5 Library"是一个客户端的版本(ADOR),它定义了有聚的数据访问对象。
ADOR 对于客户端的数据访问来说是足够的了,因为你不需要Connection对象来建立与远程数据源的联系。