ADO三大对象的属性、方法、事件及常数
2006-12-13 09:47
435 查看
Connection对象
属性
属性名称数据类型和用途
Attributes可读写Long类型,通过两个常数之和指定是否使用保留事务(retainningtransactions)。常数adXactCommitRetaining表示调用CommitTrans方法时启动一个新事务;常数adXactAbortRetaning表示调用RollbackTrans方法时启动一个新事务。默认值为0,表示不使用保留事务。
CommandTimeout可读写Long类型,指定中止某个相关Command对象的Execute调用之前必须等待的时间。默认值为30秒。
ConnectionString可读写String类型,提供数据提供者或服务提供者打开到数据源的连接所需要的特定信息
ConnectionTimeout可读写Long类型,指定中止一个失败的Connection.Open方法调用之前必须等待的时间,默认值为15秒。
CursorLocation可读写Long类型,确定是使用客户端(adUseClient)游标引擎,还是使用服务器端(adUseServer)游标引擎。默认值是adUseServer。
DefaultDatabase可读写String类型,如果ConnectString中未指定数据库名称,就使用这里所指定的名称,对SQLServer而言,其值通常是pubs
IsolationLevel可读写Long类型,指定和其他并发事务交互时的行为或事务。见IsolationLevel常数
ModeLong类型,指定对Connection的读写权限。见Mode常数
Provider可读写String类型,如果ConnectionString中未指定OLEDB数据或服务提供者的名称,就使用这时指定的名称。默认值是MSDASQL(MicrosoftOLEDBProviderforODBC)。
State可读写Long类型,指定连接是处于打开状态,还是处于关闭状态或中间状态。见State常数
Version只读String类型,返回ADO版本号。
注意:上面所列出的大多数可读写的属性,只有当连接处于关闭状态时才是可写的。
只有当用户为Connection对象用BeginTrans...CommitTrans...RollbackTrans方法定义了不遗余力,事务隔离程度的指定才真正有效。如果有多个数据库用户同时执行事务,那么应用程序中必须指定如何响应运行中的其他事务。
方法
方法用途
BeginTrans初始化一个事务;其后必须有CommitTrans和/或RollbackTrans相呼应
Close关闭连接
CommitTrans提交一个事务,以完成对数据源的永久改变(要求使用之前必须调用了BeginTrans方法)
Execute人SELECTSQL语句返回一个forward-onlyRecordset对象,也用来执行那些不返回Recordset语句,如INSERT、UPDATE、DELETE查询或DDL语句
Open用连接字符串来打开一个连接
OpenSchema返回一个Recordset对象以提供数据源的结构信息(metadata)
RollbackTrans取消一个事务,恢复对数据源做的临时性改变(要求使用之前必须调用了BeginTrans方法)
注:只有Execute、Open和OpenSchema三个方法才能接受变元参数。Execute的语法为:
cnnName.ExecutestrCommand,[lngRowsAffected[,lngOptions]]
strCommand的值可以是SQL语句、表名、存储过程名,也可以是数据提供者所能接受的任意字符串。为了提高性能,最好为lngOptions参数指定合适的值(详见lngOptions参数用到的常数),以使提供者解释语句时不用再去判定其类型。可选参数lngRowsAffected将返回INSERT、UPDATE或DELETE查询执行以后所影响的数目。这些查询会返回一个关闭的Recordset对象。一个SELECT查询将返回lngRowsAffected值为0并且返回带有一行或多行内容的打开的forward-onlyRecordset。
事件
事件名称触发时机
BeginTransCompleteBeginTrans方法执行以后。
PrivateSubcnnName_BeginTransComplet(ByValTransactionLevelAsLong,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
CommitTransCompleteCommitTrans方法执行以后
PrivateSubConnection1_CommitTransComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
ConnectComplete成功建立到数据源的Connection之后
PrivateSubConnection1_ConnectComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
DisconnectConnection关闭之后
PrivateSubConnection1_Disconnect(adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
ExecuteComplete完成Connection.Execute或Command.Execute之时
PrivateSubConnection1_ExecuteComplete(ByValRecordsAffectedAsLong,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpCommandAsADODB.Command,ByValpRecordsetAsADODB.Recordset,ByValpConnectionAsADODB.Connection)
InfoMessage一个Error对象被添加到ADODB.Connectio.Error集合之时
PrivateSubConnection1_InfoMessage(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
RollbackTransCompleteRollbackTrans方法执行之后
PrivateSubConnection1_RollbackTransComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
WillConnect即将调用Connection.Open方法之时
PrivateSubConnection1_WillConnect(ConnectionStringAsString,UserIDAsString,PasswordAsString,OptionsAsLong,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
WillExecute即将调用Connection.Execute或Command.Execute方法之时
PrivateSubConnection1_WillExecute(SourceAsString,CursorTypeAsADODB.CursorTypeEnum,LockTypeAsADODB.LockTypeEnum,OptionsAsLong,adStatusAsADODB.EventStatusEnum,ByValpCommandAsADODB.Command,ByValpRecordsetAsADODB.Recordset,ByValpConnectionAsADODB.Connection)
注:其中的adStatus参数所用到的常数的名称和含义详见adStatus所用的常数
常数
IsolationLevel常数
常数含义
adXactCursorStability只允许读其他事务已提交的改变(默认值)
adXactBrowse允许读其他事务未提交的改变
adXactChaos本事务不会覆盖其他位于更高隔离程度的事务所做的改变
adXactIsolated所有事务相互独立
adXactReadCommitted等同于adXactCursorStability
adXactReadUncommitted等同于adXactBrowse
adXactRepeatableRead禁止读其他事务的改变
adXactSerializable等同于adXactIsolated
adXactUnspecified不能确定提供者的事务隔离程度
Mode常数
常数含义
adModeUnknown未指定数据源的连接许可权(默认值)
adModeRead连接是只读的
adModeReadWrite连接是可读写的
adModeShareDenyNone不拒绝其他用户的读写访问(JetOLEDBProvider的默认值)
adModeShareDenyRead拒绝其他用户打开到数据源的读连接
adModeShareDenyWrite拒绝其他用户打开到数据源的写连接
adModeShareExclusive以独占方式打开数据源
adModeWrite连接是只写的
State常数
常数含义
adStateClosedConnection(或其他对象)是关闭的(默认值)
adStateConnecting正在连接数据源的状态
adStateExecutingConnection或Command对象的Execute方法已被调用
adStateFetching返回行(row)到Recordset对象
adStateOpenConnection(或其他对象)是打开的(活动的)
Execute方法中lngOption参数用到的常数
Command类型常数含义
adCmdUnknownCommand类型未定(默认值),由数据提供者去判别Command语法
adCmdFileCommand是和对象类型相应的文件名称
adCmdStoredProcCommand是存储过程名称
adCmdTableCommand是能产生内部SELECT*FROMTableName查询的表名称
adCmdTableDirectCommand是能直接从表中获取行内容的表名称
adCmdTextCommand是一条SQL语句
ADODB事件处理子过程参数adStatus所用的常数
常数含义
adStatusCancel操作被用户取消
adStatusCnatDeny操作不能拒绝其他用户对数据源的访问
adStatusErrorsOccurred操作导致错误并已送到Errors集合中
adStatusOK操作成功
adStatusUnWantedEvent操作过程中一个未预料到的事件被激活
Command对象
Command对象的主要目的是执行参数化的存储过程。其形式要么是临时准备(prepared),要么是持久的预编译(precompiled)过的SQL语句。如果想(存储)一个或多个查询以供在同一Connection上多次执行,Command对象也是很有用的。当想创建Recordset时,一种高效的方法是绕过Command对象而采用Recordset.Open方法。
属性
属性名称数据类型和用途
ActiveConnection指针类型,指向Command所关联的Connection对象。对于现存的已打开连接,可使用SetcmmName.ActiveConnection=cnnName。另外,也可以不用相关Connection对象名称而使用有效的连接字符串去创建一个新的连接。默认值为Null。
CommandText可读写String类型。为ActiveConnection指定一条SQL语句、表名、存储过程名或提供者能接受的任意字符串。CommandType属性的值决定了CommandText属性值的格式。默认值为空字符串:""
CommandTimeout可读写Long类型,指定中止一个Command.Execute调用之前必须等待的时间。这时的值优先于Connection.ComandTimeout中的设定值。默认值为30秒。
CommandType可读写Long类型,指定数据提供者该如何解释CommandText属性值。CommandType等效于Connection.Execute方法中的可选参数lngOption。详见CommandType所用到的常数。默认值为adCmdUnkown.
Name可读写String类型,指定Command的名称。
Prepared可读写Boolean类型,判断数据源是否把CommandText中的SQL语句编译为preparedstatement(一种临时性存储过程)。preparedstatement仅存活于Command的ActiveConnection生命周期中。许多客户/服务器RDBMS,包括SQLSERVER,都支持preparedstatement。如果数据源不支持preparedstatement,则把该属性设为True,将导致一个自陷错误。
State可读写Long类型,指定Commnad状态。见State常数。
注意:最好每次都为CommandType指定的一个合适的常数值,否则会降低系统运行的效率。
方法
方法用途
Createparameter在执行该方法之前,必须首先声明一个ADODB.Parameter对象。调用语法为:
cmmName.CreateParameter[strName[,lngType[,lngDirection[,lngSize[,varvalue]]]]]
Execute调用语法同Connection.Execute大致相同。
常数
State常数
常数含义
adStateClosedConnection(或其他对象)是关闭的(默认值)
adStateConnecting正在连接数据源的状态
adStateExecutingConnection或Command对象的Execute方法已被调用
adStateFetching返回行(row)到Recordset对象
adStateOpenConnection(或其他对象)是打开的(活动的)
CommandType所用到的常数
Command类型常数含义
adCmdUnknownCommand类型未定(默认值),由数据提供者去判别Command语法
adCmdFileCommand是和对象类型相应的文件名称
adCmdStoredProcCommand是存储过程名称
adCmdTableCommand是能产生内部SELECT*FROMTableName查询的表名称
adCmdTableDirectCommand是能直接从表中获取行内容的表名称
adCmdTextCommand是一条SQL语句
Recordset对象
属性
属性名称数据类型和用途
AbsolutePage可读写Long类型,要么是设置或返回当前记录所处的页面序号,要么是一个PositionEnum常数,见AbsolutePage用到的常数。在获取或设置AbsolutePage的值之前,必须先设定PageSize的值。AbsolutePage是从1开始计数的。如果当前记录位于第一页时,AbsolutePage的返回值为1,对AbsolutePage设置将使当前记录指针指向指定页的第一条记录。
AbsolutePosition*可读写的Long类型(从1开始计数),设置或返回当前记录年处的位置。AbsolutePosition的最大取值是RecordCount属性的值。
ActiveCommand可读写的String类型,Recordset所关联的先前打开的Command对象名称
ActiveConnection指针类型,指向Recordset所关联的先前打开的Connection对象,或指向一条完整有效的ConnectionString串值。
BOF*只读Boolean类型,若为True,表明记录指针已位于Recordset第一条记录之前,并且没有了当前记录
Bookmark*可读写Variant类型,返回对特定记录的引用或使用一个Bookmark值使记录指针指向特定记录
CacheSize*可读写Long类型,指定本地Cache中所存的记录条数,最小(默认值)为1。若增加了CacheSize的值,则在流动Recordset以获取更多记录时,能减少与服务器的通信次数。
CursorLocation可读写Long类型,指定可流动游标的位置,即CursorType是位于客户端还是位于服务器端,见CursorLocation用到的常数。默认值是使用OLEDB数据源提供的游标。
CusrsorType*可读写Long类型,指定Recordset游标的类型,见CursorType用到的常数,默认值是forward-only游标
DataMember指针类型,指向关联的DataEnvironment.Command对象
DataSource指针类型,指向关联的DataEnvironment.Connection对象
EditMode*只读Long类型,返回Recordset的编辑状态,见EditMode用到的常数
EOF*只读Boolean类型,若为True,表明记录指针已超出Recordset的最后一条记录,并且没有了当前记录。
Filter*可读写Variant类型,要么是一条件表达式(一条有效的SQLWHERE子句但又不出现保留字WHERE),要么是指向特定记录的Bookmark数组,要么是一个Filter常数,详见Filter用到的常数。
LockType*可读写Long类型,指定打开Recordset所使用的记录锁定方法。默认值是只读,对应于forward-only游标的只读特性。见LockType属性用到的常数。
MarshalOptions可读写Long类型,指定客户端改动后,应返回哪个记录集合,此属性仅适合于不常见的ADOR.Recordset对象,此对象是RDS.ADOR.Recordset对象成员之一。
MaxRecords*可读写Long类型,指定SELECT查询或存储过程返回的最大记录条数,默认值为0,即全部返回
PageCount只读Long类型,返回Recordset所有的页数,必须设定了PageSize的值,PageCount的返回值才是真正有意义的。如果Recordset不支持PageCount属性,则返回值为-1
PageSize可读写Long类型,设置或返回一个逻辑页所包含的记录条数。使用逻辑页可把大的Recordset分解为多个易处理的小部分。通常的做法是把PageSize设为DataGrid、MsFlexGrid或层次型的FlexGrid控件所能显示的记录条数。PageSize和锁定Jet(2k)或锁定SQLServer(6.5版及更早版本,2k;7.0版,8k)数据库时用到的表页面大小无关
PersistFormat可读写Long类型,设置或返回由调用Save方法所创建的Recordset文件的格式。当前仅有一个值adPersistADTG(默认格式:AdvancedDataTableGram)
RecordCount*只读Long类型,如果Recordset支持近似定位或支持书签,则返回带可流动游标的Recordset所含有的记录数;如果不支持,必须使用MoveLast方法以取得确实覆盖了所有记录的准确的RecordCount数值。如果forward-only类型Recordset有一条或多条记录,Recordset返回-1(True),任何类型的空的Recordset都将返回0(False)
Sort*可读写String类型,包含一条不含保留字ORDERBY的SQLORDERYBY子句,用以指定Recordset的排序方式
Source*可读写String类型,可以是SQL语句、表名、存储过程名或相关Command对象名。如果提供了Command对象名,则Source将返回Command.CommandText的值。利用Open方法的参数lngOptions可以指定提供给Source值的类型
State可读写Long类型,为对象状态常数之一。见State常数
Status只读Long类型,表明对Recordset进行批处理或其他多记录(bulk)操作后的状态。见Status属性用到的常数
注意:上表所列属性是ADODB.Recordset对象的标准属性,即那些被关系数据库的大多数通用OLEDB数据提供者所支持的属性。带星号的属性表示它与DAO.Recordset或rdoResultset对象的相应属性完全一样或很接近。
方法
方法用途
AddNew*向可更新的Recordset添加一条新记录。调用语法为rstName.AddNew[{varField|avarFields},{varvalue|avarvaluese}],其中varField是单个字段名,avarFields是字段名数组。varvalue是单个字段值,avarvalue是由avarFields指定字段的值所组成的数组。调用Update方法则把新记录加到数据库的表中。如果向主关键字不是第一个字段的Recordset中添加记录,则必须在AddNew方法中指定主关键字的名称和值
Cancel取消异步查询的执行,中止存储过程或复合SQL语句创建多个Recordset,调用语法为rstName.Cancel
CancelBatch*取消LockEdit值为BatchOptimistic的Recordset的即将生效的批量更新操作,调用语法为:rstName.CancelBatch[lngAffectRecords],可选参数lngAffectRecords的取值见lngAffectRecords用到的常数
Clone复制一个带有独立记录指针的Recordset对象,调用语法为:SetrstDupe=rstName.Clone()
Close关闭Recordset对象,以后可以重新设Recordset的属性并使用Open方法来再度访问Recordset。调用语法为:rstName.Close
Delete*如果Recordset的LockEdit属性值未设为adLockBatchOptimistic,立刻从Recordset和相应表中删除当前记录
Find寻找满足指定条件的记录。调用语法为:rstName.FindstrCriteria[,lngSkipRecords,lngSearchDirection[,lngStart]],其中strCriteria是不含WHERE关键字的SQLWHERE子句,可选参数lngSkipRecords是应用Find前所跳过的记录数目,lngDirection指定查找方向(adSearchForward,和adSearchBackward,其中adSearchForward是默认值),可选参数lngStart指定了从哪儿开始查找,其值要么是一个Bookmark值,要么是Bookmark常数,见varStart参数用到的Bookmark常数。
GetRows返回一个二维Variant数组(行、列),调用语法为avarname=rstName.GetRows(lngRows[,varStart[,{strFieldName|lngFieldIndex|avarFieldNames|avarFieldIndexes}]],其中lngRows是返回记录行数,varStart指定从哪儿开始查找,其值要么是一个Bookmark值,要么是Bookmark常数,见varStart参数用到的Bookmark常数。第三个参数可以是单个列(字段)的名称或索引,也可以是多个列名称或索引组成的Variant数组。如果不指定第三个参数,GetRows返回Recordset中所有列。
GetString默认情况下,返回指定数目记录的String串值,记录间由返回代码分隔。记录内由tab分隔。调用语法为:strClip=rstname.GetString(lngRows,[,strCloumnDelimiter[,strRowDelimiter,[strNullExpr]]])。其中lngRows为返回记录行数,strColumnDelimiter为可选的列分隔符(vbTab是默认值),strRowDelimiter是可选的行分隔符(vbCr是默认值),strNullExpr是可选参数,用于碰到Null值时的替代值(默认值是空字符串)。GetString的主要用途是通过把控件的Clip属性设为strClip来处理MSFlexGrid或MSHFlexGrid控件
Move*从当前记录移动记录指针。调用语法为:rstName.MovelngNumRecords[,varStart],其中lngNumRecords是要跳过的记录数,可选选参数varStart指定从哪开始移动。其值要么是一个Bookmark值,要么是Bookmark常数,见varStart参数用到的Bookmark常数。
MoveFirst*移动记录指针到第一条记录,调用语法为:rstName.MoveFirst
MoveLast*移动记录指针到最后一条记录,调用语法为:rstName.MoveLast
MoveNext移动记录指针到下一条记录,调用语法为:rstName.MoveNext。它是能用于forward-onlyRecordset的唯一Move方法
MovePrevious*移动记录指针到前一条记录,调用语法为:rstName.MovePrevious
NextRecordset返回另外的Recordset,它通常由能产生多个Recordset的复合SQL语句(如SELECT*FROM orders;SELECT*FROMcustomers)或存储过程来创建。调用语法为Next=rstName.NextRecordset[(lngRecordsAffected)],其中可选参数lngRecordsAffected指定返回到rstNext中去的记录数目。如果已不存在Recordset,rstNext被设为Nothing
Open在一个活动Command或Connection对象上打开一个Recordset,调用语法为:rstName.Open[varSource[,varActiveConnection[,lngCursorType[,lngLockType[,lngOptions]]]]]。这些参数都是可选的,
Requery重新从表中获取Recordset的内容,等效于Close后再Open。它是一个资源集中型操作。语法为:rstName.Requery
Resync*重新从表中获取部分Recordset内容。调用语法为rstName.Resync[lngAffectRecords],其中lngAffectRecords的取值见lngAffectRecords用到的常数。如果把该参数设为adAffectCurrent或adAffectGroup,则比adAffectAll(默认值)所耗的资源要少。
Save创建包含Recordset永久性拷贝的文件。调用语法为rstName.SavestrFileName。其中strFileName为路径和文件名。通常用.rst作为文件的扩展名。
Supports如果数据提供者支持指定的游标相关的方法,则返回True,否则返回为False。调用语法为Supported=rstname.Supports(lngCursorOptions).关于lngCursorOptions,见Supports方法用到的常数。
Update*使对Recordset的修改对底层数据源中的表生效。对于批量操作,Update方法只使修改对本地(Cached)Recordset生效。调用语法为rstName.Update
UpdateBatch*合对指量类型的Recordset(LockType属性值为adBatchOptimistic,CursorType属性值为adOpenKeyset或adOpenStatic)所做的修改对底层数据源中的表生效。调用语法为rstName.UpdateBatch[lngAffectRecords],其中lngAffectRecords的取值见lngAffectrecords用到的常数。
注:ADODB.Recordset对象不支持Edit方法。为了改变ADODB.Recordset对象当前记录的一个或多个字段的值,可以先使用rstName.Fields(n).value=varvalue把相应字段的值改为所需要的值,而后执行rstName.Update即可。
事件
事件名称触发时机
EndOfRecordset记录指针试图移到最后一条记录之外时
FieldchangeComplete字段值的改变完成之后
MoveCompleteMove或Move...方法执行之后
RecordsChangeComplete对单个记录编辑完成以后
RecordsetChangeComplete缓存中的改变对底层表生效之后
WillChangField对字段值改变之前
WillChangeRecord对单个记录改变之前
WillChangeRecordset缓存中的改变对底层表生效之前
WillMoveMove或Move...方法执行之前
注:事件处理模块的函数头几乎都用到了adReason参数。该参数的取值见adReason参数用到的常数。
常数
AbsolutePage属性用到的常数
常数含义
adPosUnknown数据提供者不支持页面,Recordset为空,或数据提供者不能确定页码。
adPosBOF记录指针定位于文件开头(BOF属性值为True)
adPosEOF记录指针定位于文件结尾(EOF属性值为True)
CursorLocation属性用到的常数
常数含义
adUseClient使用客户端游标库提供的游标。ADODB.Recordset要求客户端游标
adUseServer使用数据源提供的游标,通常(但非绝对)位于服务器上(默认值)
CursorType属性用到的常数
常数含义
adOpenForwardonly提供单向移动游标和只读Recordset(默认值)
adOpenDynamic提供可滚动游标,可显示其他用户对Recordset所做的改动(包括添加新记录)
adOpenKeyset提供可滚动游标,只隐藏其他用户所做的改动,类似于dynaset类型的DAO.Recordset
adOpenStatic提供一个位于Recordset静态拷贝上的可滚动游标,类似于snapshot类型的DAO.Recordset,但多了可更新特性
EditMode属性用到的常数
常数含义
adEditNone无正在进行的编辑操作(默认值)
adEditAdd临时添加一条记录,但尚未存入数据库的表中
adEditInProgress当前记录中的数据已经改动,但尚未存入数据库的表中
Filter属性用到的常数
常数含义
adFilterNone除去已有的过滤器,显示Recordset中的所有记录(等效于把Filter属性置为空串,默认值)
adfilterAffectedRecords只显示上次CancelBatch、Delete、Resync或UpdateBatch方法执行后所影响的记录
adFilterFetchedRecords只当前Cache中的记录,记录条数由CacheSize来确定
adFilterPendingRecords只显示已改动但尚未被数据源处理的记录(仅适用于批量更新模式)
LockType属性用到的常数
常数含义
adLockRecordOnly指定只读访问(默认值)
adLockBatchOptimistic使用批量更新模式而不是默认的立即更新模式
adLockOptimistic使用乐观锁(仅在更新过程中才锁定记录或页面)
adLockPessimistic使用悲观锁(编辑或更新整个过程中均锁定记录或页面)
State常数
常数含义
adStateClosedConnection(或其他对象)是关闭的(默认值)
adStateConnecting正在连接数据源的状态
adStateExecutingConnection或Command对象的Execute方法已被调用
adStateFetching返回行(row)到Recordset对象
adStateOpenConnection(或其他对象)是打开的(活动的)
Status属性用到的常数(仅适用于Batch或BulkRecordset操作)
常数含义
adRecOK成功更新
adRecNew成功添加
adRecModified成功修改
adRecDeleted成功删除
adRecUnmodified无改动
adRecInvalid未保存:Bookmark属性无效
adRecMultipleChanges未保存:保存会影响其他记录
adRecPendingChanges未保存:记录引用了一个等待插入操作
adRecCanceled未保存:操作被取消
adRecCantRelease未保存:现有记录值阻止了保存
adRecConcurrencyViolation未保存:乐观并发锁发生了问题
adRecIntegrityViolation未保存:操作会影响一致性
adRecMaxChangesExceeded未保存:存在太多的等待改动
adRecObjectOpen未保存:打开存贮对象发生冲突
adRecOutofMemory未保存:内存不足
adRecPermissionDenied未保存:用户权限不够
adRecSchemaViolation未保存:记录的结构不符合数据库中的定义
adRecDBDeleted未保存或删除:记录已被删除
lngAffectRecords参数用到的常数
Command类型常数含义
adAffectAll包括Recordset对象的所有记录,那些被Filter属性过滤隐藏的记录也计算在内(默认值)
adAffectCurrent只包括当前记录
adAffectGroup只包括那些符合当前Filter条件的记录
varStart参数用到的Bookmark常数
常数含义
adBookmarkCurrent从当前记录开始(默认值)
adBookmarkFirst从第一条记录开始
adBookmarkLast从最后一条记录开始
Supports方法用到的常数
常数含义
adAddNew调用AddNew方法
adApproxPosition设置和得到Absoluteposition和AbsolutePage属性值
adBookmark设置和得到Bookmark属性值
adDelete调用Delete方法
adHoldRecords获取另外的记录或改变获取记录指针的位置,但不提交未确定的改变
adMovePrevious调用GetRows,Move,MoveFirst和MovePrevious方法(表明是一个双向可滚动游标)
adResync调用Resync方法
adUpdate调用Update方法
adUpdateBatch调用UpdateBatch和CancelBatch方法
adReason参数用到的常数
常数含义
AdRsnAddNew调用了AddNew方法
AdRsnClose调用了Close方法
AdRsnDelete调用了Delete方法
AdRsnFirstChange第一次对记录字段值做了修改
AdRsnMove调用了Move方法
AdRsnMoveFirst调用了MoveFirst方法
AdRsnMoveLast调用了MoveLast方法
AdRsnMovePrevious调用了MovePrevious方法
AdRsnRequery调用了Requery方法
AdRsnResync调用了Resync方法
AdRsnUndoAddNewAddNew操作被用户取消
AdRsnUndoDeleteDelete操作被用户取消
AdRsnUndoUpdateUpdate操作被用户取消
AdRsnUpdate调用了Update方法
属性
属性名称数据类型和用途
Attributes可读写Long类型,通过两个常数之和指定是否使用保留事务(retainningtransactions)。常数adXactCommitRetaining表示调用CommitTrans方法时启动一个新事务;常数adXactAbortRetaning表示调用RollbackTrans方法时启动一个新事务。默认值为0,表示不使用保留事务。
CommandTimeout可读写Long类型,指定中止某个相关Command对象的Execute调用之前必须等待的时间。默认值为30秒。
ConnectionString可读写String类型,提供数据提供者或服务提供者打开到数据源的连接所需要的特定信息
ConnectionTimeout可读写Long类型,指定中止一个失败的Connection.Open方法调用之前必须等待的时间,默认值为15秒。
CursorLocation可读写Long类型,确定是使用客户端(adUseClient)游标引擎,还是使用服务器端(adUseServer)游标引擎。默认值是adUseServer。
DefaultDatabase可读写String类型,如果ConnectString中未指定数据库名称,就使用这里所指定的名称,对SQLServer而言,其值通常是pubs
IsolationLevel可读写Long类型,指定和其他并发事务交互时的行为或事务。见IsolationLevel常数
ModeLong类型,指定对Connection的读写权限。见Mode常数
Provider可读写String类型,如果ConnectionString中未指定OLEDB数据或服务提供者的名称,就使用这时指定的名称。默认值是MSDASQL(MicrosoftOLEDBProviderforODBC)。
State可读写Long类型,指定连接是处于打开状态,还是处于关闭状态或中间状态。见State常数
Version只读String类型,返回ADO版本号。
注意:上面所列出的大多数可读写的属性,只有当连接处于关闭状态时才是可写的。
只有当用户为Connection对象用BeginTrans...CommitTrans...RollbackTrans方法定义了不遗余力,事务隔离程度的指定才真正有效。如果有多个数据库用户同时执行事务,那么应用程序中必须指定如何响应运行中的其他事务。
方法
方法用途
BeginTrans初始化一个事务;其后必须有CommitTrans和/或RollbackTrans相呼应
Close关闭连接
CommitTrans提交一个事务,以完成对数据源的永久改变(要求使用之前必须调用了BeginTrans方法)
Execute人SELECTSQL语句返回一个forward-onlyRecordset对象,也用来执行那些不返回Recordset语句,如INSERT、UPDATE、DELETE查询或DDL语句
Open用连接字符串来打开一个连接
OpenSchema返回一个Recordset对象以提供数据源的结构信息(metadata)
RollbackTrans取消一个事务,恢复对数据源做的临时性改变(要求使用之前必须调用了BeginTrans方法)
注:只有Execute、Open和OpenSchema三个方法才能接受变元参数。Execute的语法为:
cnnName.ExecutestrCommand,[lngRowsAffected[,lngOptions]]
strCommand的值可以是SQL语句、表名、存储过程名,也可以是数据提供者所能接受的任意字符串。为了提高性能,最好为lngOptions参数指定合适的值(详见lngOptions参数用到的常数),以使提供者解释语句时不用再去判定其类型。可选参数lngRowsAffected将返回INSERT、UPDATE或DELETE查询执行以后所影响的数目。这些查询会返回一个关闭的Recordset对象。一个SELECT查询将返回lngRowsAffected值为0并且返回带有一行或多行内容的打开的forward-onlyRecordset。
事件
事件名称触发时机
BeginTransCompleteBeginTrans方法执行以后。
PrivateSubcnnName_BeginTransComplet(ByValTransactionLevelAsLong,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
CommitTransCompleteCommitTrans方法执行以后
PrivateSubConnection1_CommitTransComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
ConnectComplete成功建立到数据源的Connection之后
PrivateSubConnection1_ConnectComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
DisconnectConnection关闭之后
PrivateSubConnection1_Disconnect(adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
ExecuteComplete完成Connection.Execute或Command.Execute之时
PrivateSubConnection1_ExecuteComplete(ByValRecordsAffectedAsLong,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpCommandAsADODB.Command,ByValpRecordsetAsADODB.Recordset,ByValpConnectionAsADODB.Connection)
InfoMessage一个Error对象被添加到ADODB.Connectio.Error集合之时
PrivateSubConnection1_InfoMessage(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
RollbackTransCompleteRollbackTrans方法执行之后
PrivateSubConnection1_RollbackTransComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
WillConnect即将调用Connection.Open方法之时
PrivateSubConnection1_WillConnect(ConnectionStringAsString,UserIDAsString,PasswordAsString,OptionsAsLong,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)
WillExecute即将调用Connection.Execute或Command.Execute方法之时
PrivateSubConnection1_WillExecute(SourceAsString,CursorTypeAsADODB.CursorTypeEnum,LockTypeAsADODB.LockTypeEnum,OptionsAsLong,adStatusAsADODB.EventStatusEnum,ByValpCommandAsADODB.Command,ByValpRecordsetAsADODB.Recordset,ByValpConnectionAsADODB.Connection)
注:其中的adStatus参数所用到的常数的名称和含义详见adStatus所用的常数
常数
IsolationLevel常数
常数含义
adXactCursorStability只允许读其他事务已提交的改变(默认值)
adXactBrowse允许读其他事务未提交的改变
adXactChaos本事务不会覆盖其他位于更高隔离程度的事务所做的改变
adXactIsolated所有事务相互独立
adXactReadCommitted等同于adXactCursorStability
adXactReadUncommitted等同于adXactBrowse
adXactRepeatableRead禁止读其他事务的改变
adXactSerializable等同于adXactIsolated
adXactUnspecified不能确定提供者的事务隔离程度
Mode常数
常数含义
adModeUnknown未指定数据源的连接许可权(默认值)
adModeRead连接是只读的
adModeReadWrite连接是可读写的
adModeShareDenyNone不拒绝其他用户的读写访问(JetOLEDBProvider的默认值)
adModeShareDenyRead拒绝其他用户打开到数据源的读连接
adModeShareDenyWrite拒绝其他用户打开到数据源的写连接
adModeShareExclusive以独占方式打开数据源
adModeWrite连接是只写的
State常数
常数含义
adStateClosedConnection(或其他对象)是关闭的(默认值)
adStateConnecting正在连接数据源的状态
adStateExecutingConnection或Command对象的Execute方法已被调用
adStateFetching返回行(row)到Recordset对象
adStateOpenConnection(或其他对象)是打开的(活动的)
Execute方法中lngOption参数用到的常数
Command类型常数含义
adCmdUnknownCommand类型未定(默认值),由数据提供者去判别Command语法
adCmdFileCommand是和对象类型相应的文件名称
adCmdStoredProcCommand是存储过程名称
adCmdTableCommand是能产生内部SELECT*FROMTableName查询的表名称
adCmdTableDirectCommand是能直接从表中获取行内容的表名称
adCmdTextCommand是一条SQL语句
ADODB事件处理子过程参数adStatus所用的常数
常数含义
adStatusCancel操作被用户取消
adStatusCnatDeny操作不能拒绝其他用户对数据源的访问
adStatusErrorsOccurred操作导致错误并已送到Errors集合中
adStatusOK操作成功
adStatusUnWantedEvent操作过程中一个未预料到的事件被激活
Command对象
Command对象的主要目的是执行参数化的存储过程。其形式要么是临时准备(prepared),要么是持久的预编译(precompiled)过的SQL语句。如果想(存储)一个或多个查询以供在同一Connection上多次执行,Command对象也是很有用的。当想创建Recordset时,一种高效的方法是绕过Command对象而采用Recordset.Open方法。
属性
属性名称数据类型和用途
ActiveConnection指针类型,指向Command所关联的Connection对象。对于现存的已打开连接,可使用SetcmmName.ActiveConnection=cnnName。另外,也可以不用相关Connection对象名称而使用有效的连接字符串去创建一个新的连接。默认值为Null。
CommandText可读写String类型。为ActiveConnection指定一条SQL语句、表名、存储过程名或提供者能接受的任意字符串。CommandType属性的值决定了CommandText属性值的格式。默认值为空字符串:""
CommandTimeout可读写Long类型,指定中止一个Command.Execute调用之前必须等待的时间。这时的值优先于Connection.ComandTimeout中的设定值。默认值为30秒。
CommandType可读写Long类型,指定数据提供者该如何解释CommandText属性值。CommandType等效于Connection.Execute方法中的可选参数lngOption。详见CommandType所用到的常数。默认值为adCmdUnkown.
Name可读写String类型,指定Command的名称。
Prepared可读写Boolean类型,判断数据源是否把CommandText中的SQL语句编译为preparedstatement(一种临时性存储过程)。preparedstatement仅存活于Command的ActiveConnection生命周期中。许多客户/服务器RDBMS,包括SQLSERVER,都支持preparedstatement。如果数据源不支持preparedstatement,则把该属性设为True,将导致一个自陷错误。
State可读写Long类型,指定Commnad状态。见State常数。
注意:最好每次都为CommandType指定的一个合适的常数值,否则会降低系统运行的效率。
方法
方法用途
Createparameter在执行该方法之前,必须首先声明一个ADODB.Parameter对象。调用语法为:
cmmName.CreateParameter[strName[,lngType[,lngDirection[,lngSize[,varvalue]]]]]
Execute调用语法同Connection.Execute大致相同。
常数
State常数
常数含义
adStateClosedConnection(或其他对象)是关闭的(默认值)
adStateConnecting正在连接数据源的状态
adStateExecutingConnection或Command对象的Execute方法已被调用
adStateFetching返回行(row)到Recordset对象
adStateOpenConnection(或其他对象)是打开的(活动的)
CommandType所用到的常数
Command类型常数含义
adCmdUnknownCommand类型未定(默认值),由数据提供者去判别Command语法
adCmdFileCommand是和对象类型相应的文件名称
adCmdStoredProcCommand是存储过程名称
adCmdTableCommand是能产生内部SELECT*FROMTableName查询的表名称
adCmdTableDirectCommand是能直接从表中获取行内容的表名称
adCmdTextCommand是一条SQL语句
Recordset对象
属性
属性名称数据类型和用途
AbsolutePage可读写Long类型,要么是设置或返回当前记录所处的页面序号,要么是一个PositionEnum常数,见AbsolutePage用到的常数。在获取或设置AbsolutePage的值之前,必须先设定PageSize的值。AbsolutePage是从1开始计数的。如果当前记录位于第一页时,AbsolutePage的返回值为1,对AbsolutePage设置将使当前记录指针指向指定页的第一条记录。
AbsolutePosition*可读写的Long类型(从1开始计数),设置或返回当前记录年处的位置。AbsolutePosition的最大取值是RecordCount属性的值。
ActiveCommand可读写的String类型,Recordset所关联的先前打开的Command对象名称
ActiveConnection指针类型,指向Recordset所关联的先前打开的Connection对象,或指向一条完整有效的ConnectionString串值。
BOF*只读Boolean类型,若为True,表明记录指针已位于Recordset第一条记录之前,并且没有了当前记录
Bookmark*可读写Variant类型,返回对特定记录的引用或使用一个Bookmark值使记录指针指向特定记录
CacheSize*可读写Long类型,指定本地Cache中所存的记录条数,最小(默认值)为1。若增加了CacheSize的值,则在流动Recordset以获取更多记录时,能减少与服务器的通信次数。
CursorLocation可读写Long类型,指定可流动游标的位置,即CursorType是位于客户端还是位于服务器端,见CursorLocation用到的常数。默认值是使用OLEDB数据源提供的游标。
CusrsorType*可读写Long类型,指定Recordset游标的类型,见CursorType用到的常数,默认值是forward-only游标
DataMember指针类型,指向关联的DataEnvironment.Command对象
DataSource指针类型,指向关联的DataEnvironment.Connection对象
EditMode*只读Long类型,返回Recordset的编辑状态,见EditMode用到的常数
EOF*只读Boolean类型,若为True,表明记录指针已超出Recordset的最后一条记录,并且没有了当前记录。
Filter*可读写Variant类型,要么是一条件表达式(一条有效的SQLWHERE子句但又不出现保留字WHERE),要么是指向特定记录的Bookmark数组,要么是一个Filter常数,详见Filter用到的常数。
LockType*可读写Long类型,指定打开Recordset所使用的记录锁定方法。默认值是只读,对应于forward-only游标的只读特性。见LockType属性用到的常数。
MarshalOptions可读写Long类型,指定客户端改动后,应返回哪个记录集合,此属性仅适合于不常见的ADOR.Recordset对象,此对象是RDS.ADOR.Recordset对象成员之一。
MaxRecords*可读写Long类型,指定SELECT查询或存储过程返回的最大记录条数,默认值为0,即全部返回
PageCount只读Long类型,返回Recordset所有的页数,必须设定了PageSize的值,PageCount的返回值才是真正有意义的。如果Recordset不支持PageCount属性,则返回值为-1
PageSize可读写Long类型,设置或返回一个逻辑页所包含的记录条数。使用逻辑页可把大的Recordset分解为多个易处理的小部分。通常的做法是把PageSize设为DataGrid、MsFlexGrid或层次型的FlexGrid控件所能显示的记录条数。PageSize和锁定Jet(2k)或锁定SQLServer(6.5版及更早版本,2k;7.0版,8k)数据库时用到的表页面大小无关
PersistFormat可读写Long类型,设置或返回由调用Save方法所创建的Recordset文件的格式。当前仅有一个值adPersistADTG(默认格式:AdvancedDataTableGram)
RecordCount*只读Long类型,如果Recordset支持近似定位或支持书签,则返回带可流动游标的Recordset所含有的记录数;如果不支持,必须使用MoveLast方法以取得确实覆盖了所有记录的准确的RecordCount数值。如果forward-only类型Recordset有一条或多条记录,Recordset返回-1(True),任何类型的空的Recordset都将返回0(False)
Sort*可读写String类型,包含一条不含保留字ORDERBY的SQLORDERYBY子句,用以指定Recordset的排序方式
Source*可读写String类型,可以是SQL语句、表名、存储过程名或相关Command对象名。如果提供了Command对象名,则Source将返回Command.CommandText的值。利用Open方法的参数lngOptions可以指定提供给Source值的类型
State可读写Long类型,为对象状态常数之一。见State常数
Status只读Long类型,表明对Recordset进行批处理或其他多记录(bulk)操作后的状态。见Status属性用到的常数
注意:上表所列属性是ADODB.Recordset对象的标准属性,即那些被关系数据库的大多数通用OLEDB数据提供者所支持的属性。带星号的属性表示它与DAO.Recordset或rdoResultset对象的相应属性完全一样或很接近。
方法
方法用途
AddNew*向可更新的Recordset添加一条新记录。调用语法为rstName.AddNew[{varField|avarFields},{varvalue|avarvaluese}],其中varField是单个字段名,avarFields是字段名数组。varvalue是单个字段值,avarvalue是由avarFields指定字段的值所组成的数组。调用Update方法则把新记录加到数据库的表中。如果向主关键字不是第一个字段的Recordset中添加记录,则必须在AddNew方法中指定主关键字的名称和值
Cancel取消异步查询的执行,中止存储过程或复合SQL语句创建多个Recordset,调用语法为rstName.Cancel
CancelBatch*取消LockEdit值为BatchOptimistic的Recordset的即将生效的批量更新操作,调用语法为:rstName.CancelBatch[lngAffectRecords],可选参数lngAffectRecords的取值见lngAffectRecords用到的常数
Clone复制一个带有独立记录指针的Recordset对象,调用语法为:SetrstDupe=rstName.Clone()
Close关闭Recordset对象,以后可以重新设Recordset的属性并使用Open方法来再度访问Recordset。调用语法为:rstName.Close
Delete*如果Recordset的LockEdit属性值未设为adLockBatchOptimistic,立刻从Recordset和相应表中删除当前记录
Find寻找满足指定条件的记录。调用语法为:rstName.FindstrCriteria[,lngSkipRecords,lngSearchDirection[,lngStart]],其中strCriteria是不含WHERE关键字的SQLWHERE子句,可选参数lngSkipRecords是应用Find前所跳过的记录数目,lngDirection指定查找方向(adSearchForward,和adSearchBackward,其中adSearchForward是默认值),可选参数lngStart指定了从哪儿开始查找,其值要么是一个Bookmark值,要么是Bookmark常数,见varStart参数用到的Bookmark常数。
GetRows返回一个二维Variant数组(行、列),调用语法为avarname=rstName.GetRows(lngRows[,varStart[,{strFieldName|lngFieldIndex|avarFieldNames|avarFieldIndexes}]],其中lngRows是返回记录行数,varStart指定从哪儿开始查找,其值要么是一个Bookmark值,要么是Bookmark常数,见varStart参数用到的Bookmark常数。第三个参数可以是单个列(字段)的名称或索引,也可以是多个列名称或索引组成的Variant数组。如果不指定第三个参数,GetRows返回Recordset中所有列。
GetString默认情况下,返回指定数目记录的String串值,记录间由返回代码分隔。记录内由tab分隔。调用语法为:strClip=rstname.GetString(lngRows,[,strCloumnDelimiter[,strRowDelimiter,[strNullExpr]]])。其中lngRows为返回记录行数,strColumnDelimiter为可选的列分隔符(vbTab是默认值),strRowDelimiter是可选的行分隔符(vbCr是默认值),strNullExpr是可选参数,用于碰到Null值时的替代值(默认值是空字符串)。GetString的主要用途是通过把控件的Clip属性设为strClip来处理MSFlexGrid或MSHFlexGrid控件
Move*从当前记录移动记录指针。调用语法为:rstName.MovelngNumRecords[,varStart],其中lngNumRecords是要跳过的记录数,可选选参数varStart指定从哪开始移动。其值要么是一个Bookmark值,要么是Bookmark常数,见varStart参数用到的Bookmark常数。
MoveFirst*移动记录指针到第一条记录,调用语法为:rstName.MoveFirst
MoveLast*移动记录指针到最后一条记录,调用语法为:rstName.MoveLast
MoveNext移动记录指针到下一条记录,调用语法为:rstName.MoveNext。它是能用于forward-onlyRecordset的唯一Move方法
MovePrevious*移动记录指针到前一条记录,调用语法为:rstName.MovePrevious
NextRecordset返回另外的Recordset,它通常由能产生多个Recordset的复合SQL语句(如SELECT*FROM orders;SELECT*FROMcustomers)或存储过程来创建。调用语法为Next=rstName.NextRecordset[(lngRecordsAffected)],其中可选参数lngRecordsAffected指定返回到rstNext中去的记录数目。如果已不存在Recordset,rstNext被设为Nothing
Open在一个活动Command或Connection对象上打开一个Recordset,调用语法为:rstName.Open[varSource[,varActiveConnection[,lngCursorType[,lngLockType[,lngOptions]]]]]。这些参数都是可选的,
Requery重新从表中获取Recordset的内容,等效于Close后再Open。它是一个资源集中型操作。语法为:rstName.Requery
Resync*重新从表中获取部分Recordset内容。调用语法为rstName.Resync[lngAffectRecords],其中lngAffectRecords的取值见lngAffectRecords用到的常数。如果把该参数设为adAffectCurrent或adAffectGroup,则比adAffectAll(默认值)所耗的资源要少。
Save创建包含Recordset永久性拷贝的文件。调用语法为rstName.SavestrFileName。其中strFileName为路径和文件名。通常用.rst作为文件的扩展名。
Supports如果数据提供者支持指定的游标相关的方法,则返回True,否则返回为False。调用语法为Supported=rstname.Supports(lngCursorOptions).关于lngCursorOptions,见Supports方法用到的常数。
Update*使对Recordset的修改对底层数据源中的表生效。对于批量操作,Update方法只使修改对本地(Cached)Recordset生效。调用语法为rstName.Update
UpdateBatch*合对指量类型的Recordset(LockType属性值为adBatchOptimistic,CursorType属性值为adOpenKeyset或adOpenStatic)所做的修改对底层数据源中的表生效。调用语法为rstName.UpdateBatch[lngAffectRecords],其中lngAffectRecords的取值见lngAffectrecords用到的常数。
注:ADODB.Recordset对象不支持Edit方法。为了改变ADODB.Recordset对象当前记录的一个或多个字段的值,可以先使用rstName.Fields(n).value=varvalue把相应字段的值改为所需要的值,而后执行rstName.Update即可。
事件
事件名称触发时机
EndOfRecordset记录指针试图移到最后一条记录之外时
FieldchangeComplete字段值的改变完成之后
MoveCompleteMove或Move...方法执行之后
RecordsChangeComplete对单个记录编辑完成以后
RecordsetChangeComplete缓存中的改变对底层表生效之后
WillChangField对字段值改变之前
WillChangeRecord对单个记录改变之前
WillChangeRecordset缓存中的改变对底层表生效之前
WillMoveMove或Move...方法执行之前
注:事件处理模块的函数头几乎都用到了adReason参数。该参数的取值见adReason参数用到的常数。
常数
AbsolutePage属性用到的常数
常数含义
adPosUnknown数据提供者不支持页面,Recordset为空,或数据提供者不能确定页码。
adPosBOF记录指针定位于文件开头(BOF属性值为True)
adPosEOF记录指针定位于文件结尾(EOF属性值为True)
CursorLocation属性用到的常数
常数含义
adUseClient使用客户端游标库提供的游标。ADODB.Recordset要求客户端游标
adUseServer使用数据源提供的游标,通常(但非绝对)位于服务器上(默认值)
CursorType属性用到的常数
常数含义
adOpenForwardonly提供单向移动游标和只读Recordset(默认值)
adOpenDynamic提供可滚动游标,可显示其他用户对Recordset所做的改动(包括添加新记录)
adOpenKeyset提供可滚动游标,只隐藏其他用户所做的改动,类似于dynaset类型的DAO.Recordset
adOpenStatic提供一个位于Recordset静态拷贝上的可滚动游标,类似于snapshot类型的DAO.Recordset,但多了可更新特性
EditMode属性用到的常数
常数含义
adEditNone无正在进行的编辑操作(默认值)
adEditAdd临时添加一条记录,但尚未存入数据库的表中
adEditInProgress当前记录中的数据已经改动,但尚未存入数据库的表中
Filter属性用到的常数
常数含义
adFilterNone除去已有的过滤器,显示Recordset中的所有记录(等效于把Filter属性置为空串,默认值)
adfilterAffectedRecords只显示上次CancelBatch、Delete、Resync或UpdateBatch方法执行后所影响的记录
adFilterFetchedRecords只当前Cache中的记录,记录条数由CacheSize来确定
adFilterPendingRecords只显示已改动但尚未被数据源处理的记录(仅适用于批量更新模式)
LockType属性用到的常数
常数含义
adLockRecordOnly指定只读访问(默认值)
adLockBatchOptimistic使用批量更新模式而不是默认的立即更新模式
adLockOptimistic使用乐观锁(仅在更新过程中才锁定记录或页面)
adLockPessimistic使用悲观锁(编辑或更新整个过程中均锁定记录或页面)
State常数
常数含义
adStateClosedConnection(或其他对象)是关闭的(默认值)
adStateConnecting正在连接数据源的状态
adStateExecutingConnection或Command对象的Execute方法已被调用
adStateFetching返回行(row)到Recordset对象
adStateOpenConnection(或其他对象)是打开的(活动的)
Status属性用到的常数(仅适用于Batch或BulkRecordset操作)
常数含义
adRecOK成功更新
adRecNew成功添加
adRecModified成功修改
adRecDeleted成功删除
adRecUnmodified无改动
adRecInvalid未保存:Bookmark属性无效
adRecMultipleChanges未保存:保存会影响其他记录
adRecPendingChanges未保存:记录引用了一个等待插入操作
adRecCanceled未保存:操作被取消
adRecCantRelease未保存:现有记录值阻止了保存
adRecConcurrencyViolation未保存:乐观并发锁发生了问题
adRecIntegrityViolation未保存:操作会影响一致性
adRecMaxChangesExceeded未保存:存在太多的等待改动
adRecObjectOpen未保存:打开存贮对象发生冲突
adRecOutofMemory未保存:内存不足
adRecPermissionDenied未保存:用户权限不够
adRecSchemaViolation未保存:记录的结构不符合数据库中的定义
adRecDBDeleted未保存或删除:记录已被删除
lngAffectRecords参数用到的常数
Command类型常数含义
adAffectAll包括Recordset对象的所有记录,那些被Filter属性过滤隐藏的记录也计算在内(默认值)
adAffectCurrent只包括当前记录
adAffectGroup只包括那些符合当前Filter条件的记录
varStart参数用到的Bookmark常数
常数含义
adBookmarkCurrent从当前记录开始(默认值)
adBookmarkFirst从第一条记录开始
adBookmarkLast从最后一条记录开始
Supports方法用到的常数
常数含义
adAddNew调用AddNew方法
adApproxPosition设置和得到Absoluteposition和AbsolutePage属性值
adBookmark设置和得到Bookmark属性值
adDelete调用Delete方法
adHoldRecords获取另外的记录或改变获取记录指针的位置,但不提交未确定的改变
adMovePrevious调用GetRows,Move,MoveFirst和MovePrevious方法(表明是一个双向可滚动游标)
adResync调用Resync方法
adUpdate调用Update方法
adUpdateBatch调用UpdateBatch和CancelBatch方法
adReason参数用到的常数
常数含义
AdRsnAddNew调用了AddNew方法
AdRsnClose调用了Close方法
AdRsnDelete调用了Delete方法
AdRsnFirstChange第一次对记录字段值做了修改
AdRsnMove调用了Move方法
AdRsnMoveFirst调用了MoveFirst方法
AdRsnMoveLast调用了MoveLast方法
AdRsnMovePrevious调用了MovePrevious方法
AdRsnRequery调用了Requery方法
AdRsnResync调用了Resync方法
AdRsnUndoAddNewAddNew操作被用户取消
AdRsnUndoDeleteDelete操作被用户取消
AdRsnUndoUpdateUpdate操作被用户取消
AdRsnUpdate调用了Update方法
相关文章推荐
- ADO三大对象的属性、方法、事件及常数
- ADO三大对象的属性、方法、事件及常数(4)
- ADO三大对象的属性、方法、事件及常数
- ADO三大对象的属性、方法、事件及常数(三)
- ADO三大对象的属性、方法、事件及常数[ZT]
- ADO三大对象的属性、方法、事件及常数(一)
- ADO三大对象的属性、方法、事件及常数(一)
- ADO三大对象的属性、方法、事件及常数
- ADO三大对象的属性、方法、事件及常数(二)
- ADO三大对象的属性、方法、事件及常数(三)
- ADO三大对象的属性、方法、事件及常数[ZT]
- ADO三大对象的属性、方法、事件及常数(三)
- ADO三大对象的属性、方法、事件及常数(二)
- ADO三大对象的属性、方法、事件及常数(1)
- ADO三大对象的属性、方法、事件及常数
- ADO三大对象的属性、方法、事件及常数(一)
- ADO三大对象的属性、方法、事件及常数
- ADO三大对象的属性、方法、事件及常数(2)
- ADO三大对象的属性、方法、事件及常数
- ADO三大对象的属性、方法、事件及常数(3)