VC下的ADO编程入门(2-1) [选择自 callzjy 的 Blog]

原创 2005年05月23日 08:20:00

在正式进入ADO编程之旅前,我们先来熟悉一下Connection Command Recordset三个重要对象的一些重要方法,这样在今后写ADO代码时,给方法传递正确的参数,Let's go

Connection方法

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

参数

1.         ConnectionString   可选,包含连接信息

2.         UserID   可选,包含建立连接时所使用的用户名称

3.         Password   可选,包含建立连接时所用密码

4.         OpenOptions   可选,ConnectOptionEnum 值。如果设置为 adConnectAsync,则异步打开连接。adConnectUnspecified为默认选项,表示同步打开连接

 

_RecordsetPtr Execute ( _bstr_t CommandText, VARIANT * RecordsAffected, long Options ) 

参数

1.         CommandText是命令字符串,通常是SQL命令,也可以是表名、存储过程等

2.         RecordsAffected 可选,是操作完成后所影响的行数

3.         Options 可选,解释CommandText参数的方式,Options可以是CommandTypeEnumExecuteOptionEnum枚举类型值

类型

说明

adCmdUnspecifed=-1

未描述CommandType属性

adCmdText=1

指示提供者应将 CommandText 赋值为命令的文本定义。

adCmdTableDirect

指示提供者应从 CommandText 命名的表中返回所有行。

adCmdTable=2

指示提供者应将 CommandText 赋值为表名。

adCmdStoredProc=4

指示提供者应将 CommandText 赋值为存储过程。

adCmdUnknown=8

指示 CommandText 参数中的命令类型未知。

adExecuteAsync

指示命令应该异步执行。

adFetchAsync

指示 CacheSize 属性指定的初始数量之后的行应异步提取。

 

Command方法

_ RecordsetPtr  Execute (VARIANT * RecordsAffected, VARIANT * Parameters,long Options)

参数

1.         RecordsAffected 可选,返回受操作影响的记录数

2.         Parameters 可选,包含所使用的具体参数,是一个VARIANT 类型数组

3.         Options可选,指示提供程序如何解释CommandText属性,请参见Connection对象的Execute 方法

 

ParameterPtr CreateParameter(_bstr_t Nmae,enum DataTypeEnum Type,enum ParameterDirectionEnum Direction,ADO_LONGPTR size,const _variant_t &value)

 

Recordset方法

HRESULT Open ( const _variant_t & Source, const _variant_t & ActiveConnection, enum CursorTypeEnum CursorType, enum LockTypeEnum LockType, long Options ) 
参数

1.         Source可选,指定记录集的源,可以是命令对象,SQL语句,表,存储过程等

2.         ActiveConnection可选,可以是一个已经建立好的连接对象(我们需要用Connection对象指针来构造一个_variant_t对象或是一个包含连接信息的字符串

3.         CursorType可选,游标类型,它可以是以下值之一,请看CursorTypeEnum这个枚举结构:

枚举值

说明

adOpenUnspecified = -1  

不作特别指定

adOpenForwardOnly = 0

向前滚静态游标。这种游标只能向前浏览记录集,比如用MoveNext向前滚动,这种方式可以提高浏览速度。但诸如BookMark,RecordCount,AbsolutePosition,AbsolutePage都不能使用

adOpenKeyset = 1

采用这种游标的记录集看不到其它用户的新增、删除操作,但对于更新原有记录的操作对你是可见的。

adOpenDynamic = 2

动态游标。所有数据库的操作都会立即在各用户记录集上反应出来。

adOpenStatic = 3

静态游标。它为你的记录集产生一个静态备份,但其它用户的新增、删除、更新操作对你的记录集来说是不可见的。

4.         LockType锁定类型,它可以是以下值之一,请看LockTypeEnum这个枚举结构:

枚举值

说明

adLockUnspecified = -1

未指定

adLockReadOnly = 1

只读记录集

adLockPessimistic = 2

悲观锁定方式。数据在更新时锁定其它所有动作,这是最安全的锁定机制

adLockOptimistic = 3

乐观锁定方式。只有在你调用Update方法时才锁定记录。在此之前仍然可以做数据的更新、插入、删除等动作

adLockBatchOptimistic = 4

乐观分批更新。编辑时记录不会锁定,更改、插入及删除是在批处理模式下完成。

5.         Options请参考本文中对Connection对象或Command对象的Execute方法的介绍

 

HRESULT Move (ADO_LONGPTR NumRecords,const _variant_t &start)

n          adBookmarkCurrent

n          adBookmardFirst

n          adBookmarkLast

_RecordsetPtr NextRecordset(VARIANT *RecordsAffected)

HRESULT AddNew(const _varinat_t & FieldList,const _variant_t &values)

HRESULT Delete(enum AffectedEnum AffectRecords)

n          adAffectCurrent

n          adAffectGroup

n          adAffectAll

HRESULT Update(const _variant_t &Fields,const _variant_t &values)

_variant_t GetRows(long Rows,const _variant_t &start,const _variant_t & Fields)

HRESULT Requery(long Options)

vc++中ADO技术入门

摘要 本文简要介绍了在VC++ 6.0中使用 ADO进行客户端数据库编程的基本步骤,以及常见问题的解决方法,可供入门级的参考之用。    关键字 ADO VC++ 数据库编程 ADO 是...
  • coolboylai2
  • coolboylai2
  • 2012年07月01日 16:48
  • 3731

vc实现SQL数据库ADO连接(菜鸟入门篇)

关于vc6.0中实现ADO SQL数据库连接的文章网上虽然很多,但大多写的很繁琐,对于我们这样的菜鸟来说,还是很希望有一篇能把看似一个复杂的问题简单化的文章的。从网上收集了一些资料实践过后晒到博客里,...
  • wxlcx
  • wxlcx
  • 2009年11月25日 16:39
  • 2182

VC中ADO编程

介绍VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看。   正文一、ADO概述ADO是Microsoft为最新和最强大的数据访问范例 OLE...
  • bwmwm
  • bwmwm
  • 2007年04月27日 14:29
  • 2695

VC下的ADO编程入门(2-4)

  • zgqtxwd
  • zgqtxwd
  • 2008年04月27日 21:19
  • 137

VC下的ADO编程入门(2-3)

在正式进入本主题前,让我们先来看一下COM API编程 #include #include #include #include "adoid.h" #include "adoint.h"  str...
  • wokagoka
  • wokagoka
  • 2005年05月23日 08:30
  • 759

VC下的ADO编程入门

 VC下的ADO编程入门 n          新建一基于对话框的应用程序zjy,在对话框上添加一个列表框和一个按钮,用ClassWizard给列表框添加一个变量m_listn          在S...
  • ljx0305
  • ljx0305
  • 2008年05月05日 19:38
  • 1286

VC下的ADO编程入门(2-2)

VARIANT_BOOL Supports(enum CursorOptionEnum CursorOptions) 常量说明adAddNew可使用 AddNew 方法添加新记录。adApproxPo...
  • wokagoka
  • wokagoka
  • 2005年05月23日 08:29
  • 730

VC下的ADO编程入门(1)

新建一基于对话框的应用程序zjy,在对话框上添加一个列表框和一个按钮,用ClassWizard给列表框添加一个变量m_listn          在StdAfx.h头文件的所有include语句下...
  • wokagoka
  • wokagoka
  • 2005年05月23日 08:27
  • 729

分享关于VC 使用ADO数据库使用的方法封装类

ADO访问数据库的
  • YinLeNan
  • YinLeNan
  • 2014年07月27日 14:43
  • 677

VC下的ADO连接池

由于工作需要,查找了很多关于数据库连接池的实现代码.但是发现很多都是JAVA  版本的.我试着改了一下,代码如下:/******************************************...
  • xiaoly_caep
  • xiaoly_caep
  • 2004年12月31日 23:44
  • 4212
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC下的ADO编程入门(2-1) [选择自 callzjy 的 Blog]
举报原因:
原因补充:

(最多只允许输入30个字)