vbado异步:数据异步加载-vb教程来源: 发布时间:星期四, 2009年2月12日 浏览:307次 评论:0
载是ADO种数据加载方式主要由记录集options参数来控制! ADO210.CHM中格式: record.Open Source, ActiveConnection, CursorType, LockType, Options Options 可选Long 值指示提供者计算 Source 参数方式(如果该参数表示除 Command 对象的外某些内容)或者指示 Record 应该从以前保存过文件中恢复可以是个或多个 CommandTypeEnum 或 ExecuteOptionEnum 值这些值可以用位 AND 操作符组合 ExecuteOptionEnum 指定提供者执行命令方式 常量 值 介绍说明 adAsyncExecute 0x10 指示命令将异步执行 该值不能和 CommandTypeEnum 值 adCmdTableDirect 组合 adAsyncFetch 0x20 指示在 CacheSize 属性中指定数量以后剩余行将被异步检索 adAsyncFetchNonBlocking 0x40 指示检索时主线程从不会阻塞如果未检索到所请求行当前行将自行移动到文件结尾 如果从包含持久存储 Record Stream 中打开 Record那么 adAsyncFetchNonBlocking 将不起作用;该操作将同步进行并发生阻塞 当 adCmdTableDirect 选项被用于打开 Record 时adAsynchFetchNonBlocking 不起作用 adExecuteNoRecords 0x80 指示命令文本是不返回行命令或存储过程(例如仅插入数据命令)如果检索到任何行它们将被放弃且不返回 adExecuteNoRecords 只能作为可选参数传递给 Command 或 Connection Execute 思路方法 adExecuteStream 0x400 指示命令执行结果应当作为流返回 adExecuteStream 只能作为可选参数传递给 Command Execute 思路方法 adExecuteRecord 指示 CommandText 是个命令或存储过程它返回应当被作为 Record 对象返回单行 adOptionUnspecied -1 指示未指定命令 CommandTypeEnum 指定解释命令参数思路方法 常量 值 介绍说明 adCmdUnspecied -1 不指定命令类型参数 adCmdText 1 按命令或存储过程文本定义计算 CommandText adCmdTable 2 按表名计算 CommandText该表列全部是由内部生成 SQL 查询返回 adCmdStoredProc 4 按存储过程名计算 CommandText adCmdUnknown 8 默认值指示 CommandText 属性中命令类型未知 adCmdFile 256 按持久存储 Record 文件名计算 CommandText只和 Record.Open 或 Requery 起使用 adCmdTableDirect 512 按表名计算 CommandText该表列被全部返回只和 Record.Open 或 Requery 起使用若要使用 Seek 思路方法必须通过 adCmdTableDirect 打开 Record 该值不能和 ExecuteOptionEnum 值 adAsyncExecute 组合 般用这个参数adAsyncFetch来控制,另外需要 .Properties(\"Inital Fetch Size\")=50 另外可以参考MSCEVB分布式应用开发 举例,Vb6.0代码: Dim AdoRs as ADODB.Record AdoRs = ADODB.Record With AdoRs .CursorLocation = adUseClient .Properties(\"Initial Fetch Size\") = 50 .Open mstrSQL, AdoCn, adOpenStatic, adLockOptimistic, adAsyncFetch If .BOF = False Or .EOF = False Then ´-------------- End End With 整理总结:很多网友都问大数量加载问题现在这种方式可以较快返回数据般100万数据前面50条只需要5~6秒就返回来!这个方式需要注意是: 1如果返数据量太大而中途要取消需要用AdoCn.Cancel来取消查询否则数据会继续返回数据 2如果数据量太大记录集释放会有问题如果数据量在200M~300M时 adors=nothing 不会快速释放高速缓存Cache希望有其它网友能够提供自己见解 3对大数据量时C/S开发中提供翻页/网格滚动条结合方式对用户来话是极为方便有网友提供用存储过程来实现本人在开发过程用分页Control控件和异步加载数据源结合实现了很好数据浏览 开发环境:VB6.0+MS SQL Server 2K +Windows ADS 2K通过 0
相关文章读者评论发表评论 |
|