异步加载是ADO的一种数据加载方式,主要由记录集的options参数来控制!
ADO210.CHM中的格式:
recordset.OpenSource,ActiveConnection,CursorType,LockType,Options
Options
可选。Long值,指示提供者计算Source参数的方式(如果该参数表示除Command对象之外的某些内容),或者指示Recordset应该从以前保存过的文件中恢复。可以是一个或多[被屏蔽广告]
个CommandTypeEnum或ExecuteOptionEnum值,这些值可以用位AND操作符组合。
ExecuteOptionEnum
指定提供者执行命令的方式。
常量值说明
adAsyncExecute0x10指示命令将异步执行。
该值不能与CommandTypeEnum的值adCmdTableDirect组合。
adAsyncFetch0x20指示在CacheSize属性中指定的初始数量以后的剩余行将被异步检索。
adAsyncFetchNonBlocking0x40指示检索时主线程从不会阻塞。如果未检索到所请求的行,当前行将自行移动到文件结尾。
如果从包含持久存储Recordset的Stream中打开Recordset,那么adAsyncFetchNonBlocking将不起作用;该操作将同步进行并发生阻塞。
当adCmdTableDirect选项被用于打开Recordset时,adAsynchFetchNonBlocking不起作用。
adExecuteNoRecords0x80指示命令文本是不返回行的命令或存储过程(例如,仅插入数据的命令)。如果检索到任何行,它们将被放弃且不返回。
adExecuteNoRecords只能作为可选参数传递给Command或Connection的Execute方法。
adExecuteStream0x400指示命令执行的结果应当作为流返回。
adExecuteStream只能作为可选参数传递给Command的Execute方法。
adExecuteRecord指示CommandText是一个命令或存储过程,它返回应当被作为Record对象返回的单一行。
adOptionUnspecified-1指示未指定命令。
CommandTypeEnum
指定解释命令参数的方法。
常量值说明
adCmdUnspecified-1不指定命令类型的参数。
adCmdText1按命令或存储过程调用的文本定义计算CommandText。
adCmdTable2按表名计算CommandText,该表的列全部是由内部生成的SQL查询返回的。
adCmdStoredProc4按存储过程名计算CommandText。
adCmdUnknown8默认值。指示CommandText属性中命令的类型未知。
adCmdFile256按持久存储的Recordset的文件名计算CommandText。只与Recordset.Open或Requery一起使用。
adCmdTableDirect512按表名计算CommandText,该表的列被全部返回。只与Recordset.Open或Requery一起使用。若要使用Seek方法,必须通过adCmdTableDirect打开Recordset。
该值不能与ExecuteOptionEnum的值adAsyncExecute组合。
一般用这个参数adAsyncFetch来控制,另外需要
.Properties("InitalFetchSize")=50
另外可以参考《MSCE的VB分布式应用的开发》
举例,Vb6.0的代码:
DimAdoRsasADODB.Recordset
setAdoRs=newADODB.Recordset
WithAdoRs
.CursorLocation=adUseClient
.Properties("InitialFetchSize")=50
.OpenmstrSQL,AdoCn,adOpenStatic,adLockOptimistic,adAsyncFetch
If.BOF=FalseOr.EOF=FalseThen
'--------------
else
Endif
EndWith
新闻热点
疑难解答