ADO WillExecute 和 ExecuteComplete 事件
❮ 连接对象完整参考
事件是可以在特定操作发生后自动调用的子程序。
- WillExecute 事件可以在调用 objcomm.Execute、objconn.Execute 或 objrs.Open 之前触发。
- ExecuteComplete 事件可以在调用 objcomm.Execute、objconn.Execute、objrs.Open、objrs.Requery 或 objrs.NextRecordset 完成后触发。
语法
WillExecute src,cursortyp,locktyp,options,
status,objcomm,objrs,objconn
ExecuteComplete recaffected,objerror,status,
objcomm,objrs,objconn
参数 | 描述 |
---|---|
src | 包含 SQL 命令或存储过程名称的字符串 |
cursortyp | 指定要使用的游标类型。 CursorTypeEnum 值之一 |
locktyp | 指定要使用的锁定类型。 LockTypeEnum 值之一 |
options | CommandTypeEnum 或 ExecuteOptionEnum 值之一或多个 |
recaffected | 受执行影响的记录数 |
objerror | 包含发生的错误的 Error 对象 注意: EventStatusEnum 值必须设置为 adStatusErrorsOccurred 才能创建 Error 对象 |
status | EventStatusEnum 值 |
objcomm | 对于 WillExecute:设置为执行的 Command 对象或 Nothing 对于 ExecuteComplete:执行的 Command 对象 |
objrs | 对于 WillExecute:设置为命令执行结果的 Recordset 对象或 Nothing 对于 ExecuteComplete:执行命令的结果的 Recordset 对象 |
objconn | 与命令执行关联的 Connection 对象 |
CursorTypeEnum 值
指定 Recordset 对象中使用的游标类型。
常量 | 值 | 描述 |
---|---|---|
adOpenUnspecified | -1 | 不指定游标类型。 |
adOpenForwardOnly | 0 | 默认。使用只向前游标。与静态游标相同,只是您只能向前滚动记录。当您只需要遍历 Recordset 一次时,这可以提高性能。 |
adOpenKeyset | 1 | 使用键集游标。与动态游标相同,只是您无法看到其他用户添加的记录,尽管其他用户删除的记录在您的 Recordset 中是不可访问的。其他用户对数据的更改仍然可见。 |
adOpenDynamic | 2 | 使用动态游标。其他用户的添加、更改和删除操作可见,并且允许所有类型的 Recordset 移动操作,但书签除外,如果提供者不支持它们。 |
adOpenStatic | 3 | 使用静态游标。您可以使用静态副本记录集来查找数据或生成报表。其他用户的添加、更改或删除操作不可见。 |
LockTypeEnum 值
常量 | 值 | 描述 |
---|---|---|
adLockUnspecified | -1 | 不指定锁定类型。对于克隆,克隆将使用与原始克隆相同的锁定类型创建。 |
adLockReadOnly | 1 | 表示只读记录。您不能修改数据。 |
adLockPessimistic | 2 | 表示悲观锁定,逐条记录锁定。提供者执行确保成功编辑记录所需的操作,通常是在编辑后立即锁定数据源中的记录。 |
adLockOptimistic | 3 | 表示乐观锁定,逐条记录锁定。提供者使用乐观锁定,只在您调用 Update 方法时锁定记录。 |
adLockBatchOptimistic | 4 | 表示乐观批量更新。批量更新模式需要此选项。 |
CommandTypeEnum 值
常量 | 值 | 描述 |
---|---|---|
adCmdUnspecified | -1 | 不指定命令类型参数。 |
adCmdText | 1 | 将 CommandText 评估为命令或存储过程调用的文本定义。 |
adCmdTable | 2 | 将 CommandText 评估为表名,其列全部由内部生成的 SQL 查询返回。 |
adCmdStoredProc | 4 | 将 CommandText 评估为存储过程名称。 |
adCmdUnknown | 8 | 表示 CommandText 属性中的命令类型未知。 |
adCmdFile | 256 | 将 CommandText 评估为持久保存的 Recordset 的文件名。仅与 Recordset.Open 或 Requery 一起使用。 |
adCmdTableDirect | 512 | 将 CommandText 评估为表名,其列全部返回。仅与 Recordset.Open 或 Requery 一起使用。若要使用 Seek 方法,Recordset 必须以 adCmdTableDirect 打开。此值不能与 ExecuteOptionEnum 值 adAsyncExecute 组合使用。 |
ExecuteOptionEnum 值
常量 | 值 | 描述 |
---|---|---|
adOptionUnspecified | -1 | 表示命令未指定。 |
adAsyncExecute | 16 | 表示命令应异步执行。此值不能与 CommandTypeEnum 值 adCmdTableDirect 组合使用。 |
adAsyncFetch | 32 | 表示在 CacheSize 属性中指定的初始数量之后,剩余的行应异步检索。 |
adAsyncFetchNonBlocking | 64 | 表示主线程在检索时从不阻塞。如果请求的行尚未检索,当前行将自动移动到文件末尾。如果从包含持久存储的 Recordset 的 Stream 打开 Recordset,adAsyncFetchNonBlocking 将不会有任何影响;该操作将是同步的和阻塞的。adAsynchFetchNonBlocking 在使用 adCmdTableDirect 选项打开 Recordset 时不会有任何影响。 |
adExecuteNoRecords | 128 | 表示命令文本是不会返回行的命令或存储过程(例如,只插入数据的命令)。如果检索到任何行,它们将被丢弃,不会返回。adExecuteNoRecords 只能作为可选参数传递给 Command 或 Connection Execute 方法。 |
adExecuteStream | 256 | 表示命令执行的结果应作为流返回。adExecuteStream 只能作为可选参数传递给 Command Execute 方法。 |
adExecuteRecord | 512 | 表示 CommandText 是返回单行的命令或存储过程,应将其作为 Record 对象返回。 |
EventStatusEnum 值
常量 | 值 | 描述 |
---|---|---|
adStatusOK | 1 | 触发事件的操作成功 |
adStatusErrorsOccurred | 2 | 触发事件的操作失败 |
adStatusCantDeny | 3 | 无法取消待处理的操作 |
adStatusCancel | 4 | 取消触发事件的操作 |
adStatusUnwantedEvent | 5 | 在事件方法完成执行之前,阻止后续通知 |
❮ 连接对象完整参考