如何实现在数据更新的情况下响应其他事件!

Lin2000y 2003-10-18 04:02:45
我有一个数据库查询要花费的时间比较长,我想在更新查询数据(requery)的同时使程序能够响应其他的事件不至于程序像假死状态那样,对用户来说这样的情况并不友好。
最好就在(requery)的同时如果取消了的话呢把已更新的数据也能显示出来(不知道ADO有没有这样的功能)

请大家多指教!
在线等待!
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lin2000y 2003-10-22
  • 打赏
  • 举报
回复
如果是放进度条的话,那也要响应进度条的事件才能进行的呀,我的情况是在requery时整个程序都停住了一样,要等requery完时才能响应其他事件。
rocllllll 2003-10-18
  • 打赏
  • 举报
回复
帅哥,ADO的功能好像不能实现你要求的功能.
rs.update要么全部更新,要么更新失败,不可能只更新一部分的,
最好加一个进度条之类的东西,数据量一旦大了之后,VB功能有限没有办法
hhjjhjhj 2003-10-18
  • 打赏
  • 举报
回复
Requery 方法


通过重新执行对象所基于的查询来更新 Recordset 对象中的数据。

语法

recordset.Requery Options

参数

Options 可选。位掩码,包含影响本操作的 ExecuteOptionEnum 值。如果将此参数设置为 adAsyncExecute,本操作将异步执行,操作完成时将发布一个 RecordsetChangeComplete 事件。


<<ExecuteOptionEnum>>
指定提供者执行命令的方式。

常量 值 说明
adAsyncExecute
0x10
指示命令将异步执行。
adAsyncFetch
0x20
指示在 CacheSize 属性中指定的初始数量以后的剩余行将被异步检索。
adAsyncFetchNonBlocking
0x40
指示检索时主线程从不会阻塞。如果未检索到所请求的行,当前行将自行移动到文件结尾。
如果从包含持久存储 Recordset 的 Stream 中打开 Recordset,那么 adAsyncFetchNonBlocking 将不起作用;该操作将同步进行并发生阻塞。

当 adCmdTableDirect 选项被用于打开 Recordset 时,adAsynchFetchNonBlocking 不起作用。

adExecuteNoRecords
0x80
指示命令文本是不返回行的命令或存储过程(例如,仅插入数据的命令)。如果检索到任何行,它们将被放弃且不返回。通常与 CommandTypeEnum 值 adCmdText 或 adCmdStoredProc 组合在一起。
adExecuteNoRecords 只能作为可选参数传递给 Command 或 Connection Execute 方法。把它用作 Command 对象的 CommandType 属性的参数将产生错误。

adOptionUnspecified
-1 指示未指定命令。
liaorui 2003-10-18
  • 打赏
  • 举报
回复
不知道。不過用個進度條吧。這樣看起來就好看多了
Lin2000y 2003-10-18
  • 打赏
  • 举报
回复
各位,不回答也进来看看呀。。。。~_~

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧