现在的位置: 首页 > 综合 > 正文

ado学习笔记

2014年02月21日 ⁄ 综合 ⁄ 共 3006字 ⁄ 字号 评论关闭

在默认情况之下,visual c++ 不支持ado对象。要在程序中使用ado独享,需要使用#import命令将ado库文件导入到工程中,代码如下
#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")

支持ado编程的库文件是msado15.dll,它的默认保存在c:/program files/common files/system/ado目录下。参数no_namespace表示不使用ado的名字空间。为了避免出显常量重复

,将EOF改为adoEOF,BOF改为adoBOF

ado库包含3个基本接口,_ConnectionPtr   _CommandPtr    _RecordsetPtr
对应                    Connection      Command        Recordset    对象

<一>

Connection 对象代表与数据源的链接。如果是客户端/服务器数据库系统,该对象可以等价于到服务器的世纪网络连接。

在访问数据库时,首先需要创建一个Connection对象,通过它建立到指定的数据库的连接。通常需要在头文件中定义一个Connection对象,代码如下:

pulic://添加一个指向Connection对象的指针:
_ConnectionPtr m_pConnection;

//创建Connection对象;
mp_Connection.CreateInstance("ADODB.Connection");

创建Connection对象后,还需要是指具体的属性,连接到指定的数据库。 以下为经常使用的属性和方法:

(1)ConnectionString 属性。连续的字符串,之地偶那个用于建立连接数据源的信息。可以通过直接设置数据源停工这(Provider)和数据库文件的方法表示连接字符创,代码

如下:

m_pConnection->ConnectionString = "Provider=SQLOLEDB.1;Password=sa;User     ID=sa;Initial Catalog=UserMan;Data Source=localhost;"

SQLOLEDB.1表示数据源为SQL Server

Initial Catalog定义要访问的数据库

Data Source定义数据库所在服务器

localhost本地计算机
(2)ConnectionTimeOut 属性。指示在终止创世和产生错误之前执行命令需等待的时间,默认值为30s
(3)Mode 属性。指定Connection对象修改数据的权限。Mode属性的值
adModeUnknown 默认值。尚未设定或无法确定
adModeRead 只读
adModeWrite只写
adModeReadWrite读写
adModeShareDenyRead防止其它用户使用读权限打开连接
adModeShareDenyWrite防止其它用户使用写权限打开连接
adModeShareExclusive防止其它用户打开连接
adModeShareDenyNone防止其它用户使用任何权限打开连接
(4)State属性 反悔Connection对象的状态。
adStateClosed 默认,指示对象是关闭的
adStateOpen   指示对象是打开的
adStateConnecting 指示Recordset独享正在连接
adStateExecuting 指示Recordset对象正在执行命令
adStateFetching   指示Recordsetduixiang正在被读取

 

(5)Open方法。用于打开到数据源的连接。语法结构如下:
connection.Open(ConnectionString,UserID,Password,Options)

(6)Close方法。用于关闭数据源的连接。访问玩数据库,为了节省资源,通常需要将数据库连接关闭。

<二>Command对象
Command 对象定义了将对数据源执行的命令。Command对象的常用属性和方法如下。
(1)ActinveConnection 属性。通过设置ActiveConnection 属性使打开的连接与Command对象关联。
(2)CommandText 属性。定义命令(例如sql语句)的可执行文本。
(3)Execute方法。执行在commandText属性中指定的查询。sql语句或者存储过程。如果CommandText属性指定按行放回查询,执行所产生的结果将存储在新的Recordset对象中。

 

<三>Recordset 对象

Recordset对象表示来自基本表或者命令执行结果的记录全集。使用ADO时,通过Recordset对象可对几乎所有数据进行操作。所以Recordset对象均使用纪录(行)和字段(列)进

行构造。Record对象的常用属性和方法如下。

(1)AbsolutePosition属性。指定Recordset对象当前记录的序号位置。
(2)adoBOF、adoEOF属性。 adoBOF指示当前记录的位置与Recordset对象的第一个记录之前。adoEOF指示当前纪录位置位于Recordset对象的最后一个记录之后。
这两个书香经常被用来判断记录指针是否越界。adoBOF或adoEOF为真时,不能从结果集中读取数据,否则会产生错误。
(3)MaxRecord属性。指定通过查询返回Recordset的记录的最大数目。例如只需要返回前10条记录时,可以将MaxRecord属性设置为10.
(4)GetCollect方法。返回当前记录集中指定的字段值。
(5)Move方法。在记录集中指定的字段值。
(6)MoveFirst、MoveLast、MoveNext和MOvePrevious方法。在指定的Recordset对象中移动到第一个、最后一个、下一个或前一个记录并使用该记录成为当前记录。
(7)Open方法。使用Open方法可以打开代表基本表、查询结果或者以前保存的Recordset中记录的哟欧标。Open方法的语法如下:
recordset.Open(Source,ActiveConnection,CursorType,LockType,Options)

Cursor属性
adOpenForwardOnly (默认值)打开仅向前类型游标
adOpenKeyset 打开键集类型游标
adOpenDynamic 打开动态类型游标
adOpenStatic   打开静态类型游标

Options 属性
adCmdText         将Source视为命令
adCmdTable        生成SQL 查询从在Source中的命令的表中返回所有行
adCmdTableDirect 直接从Source中命名的表中返回所有行
adCmdStoredProc   将Source视为存储过程
adCmdUnknown      Source参数中的命令类型为未知
adCmdFile         从在Source中命令的文件中恢复保留(保存的)Recordset

 

其他常用的方法还包括AddNew、Delete和Update等,分别用于添加新纪录,删除指定记录和保存对当前记录的更新。

 

 

 

【上篇】
【下篇】

抱歉!评论已关闭.