(100分)ADO里的事件怎么用?比如willConnect, connectComplete...

zebulon 2004-07-11 04:17:44
(100分)ADO里的事件怎么用?比如willConnect, connectComplete...
...全文
150 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
RUKYO 2004-07-11
  • 打赏
  • 举报
回复
WillConnect 即将调用Connection.Open方法之时

Private Sub Connection1_WillConnect(ConnectionString As String, UserID As String, Password As String, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)


ConnectComplete 成功建立到数据源的Connection之后

Private Sub Connection1_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
chenyu5188 2004-07-11
  • 打赏
  • 举报
回复
示例:
要在 Microsoft Visual Basic 中处理 ADO 事件,要使用 WithEvents 关键字声明模块级变量。处理 ADO 事件的最简单方式是使用 WithEvents 来声明变量。以下范例将处理 Connection 对象的 ConnectComplete 事件:

Dim WithEvents connEvent As Connection
Attribute connEvent.VB_VarHelpID = -1
Dim strMsg As String

Private Sub Form_Load()
On Error GoTo ErrHandler:

Dim strConn As String

strConn = "Provider='sqloledb';" & _
"Data Source='MySqlServer';" & _
"Initial Catalog='Northwind';" & _
"Integrated Security='SSPI';"
Set connEvent = New ADODB.Connection
connEvent.Open strConn

Exit Sub

ErrHandler:
MsgBox strMsg
End Sub

Private Sub connEvent_ConnectComplete(ByVal pError As ADODB.Error, _
adStatus As ADODB.EventStatusEnum, _
ByVal pConnection As ADODB.Connection)

If adStatus = adStatusErrorsOccurred Then
If Not pError Is Nothing Then
Select Case pError.Number
Case adErrOperationCancelled
strMsg = "I'm sorry you can't connect right now." & vbCrLf
strMsg = strMsg & " Click OK to exit."
Unload Me
Case Else
strMsg = "Error " & Format(pError.Number) & vbCrLf
strMsg = strMsg & pError.Description
strMsg = strMsg & " Click OK to exit."
Unload Me
End Select
Else
strMsg = "Error occured. Click OK to exit."
Unload Me
End If
End If

End Sub

Connection 对象在 Form 级进行声明,并使用 WithEvents 关键字来启用事件处理。Form_Load 事件处理程序通过将新的 Connection 对象赋给 connEvent 来实际地创建对象,然后打开连接。
chenyu5188 2004-07-11
  • 打赏
  • 举报
回复


ADO 事件
BeginTransComplete 在 BeginTrans 操作后调用。
CommitTransComplete 在 CommitTrans 操作后调用。
ConnectComplete 在连接启动后调用。
Disconnect 在连接结束后调用。
EndOfRecordset 在试图移动到超过 Recordset 结尾的行时调用。
ExecuteComplete 在命令执行结束后调用。
FetchComplete 在长异步操作中的所有记录已经检索到 Recordset 中之后调用。
FetchProgress 在长异步操作期间定期调用,用于报告 Recordset 中当前已经检索的行数。
FieldChangeComplete 在更改了一个或多个 Field 对象的值后调用。
InfoMessage 在 ConnectionEvent 操作期间出现警告时调用。
MoveComplete 在 Recordset 中的当前位置更改后调用。
RecordChangeComplete 在一个或多个记录更改后调用。
RecordsetChangeComplete 在 Recordset 更改后调用。
RollbackTransComplete 在 RollbackTrans 操作后调用。
WillChangeField 在挂起操作更改 Recordset 中的一个或多个 Field 对象的值之前调用。
WillChangeRecord 在 Recordset 中的一个或多个记录(行)更改前调用。
WillChangeRecordset 在挂起操作更改 Recordset 前调用。
WillConnect 在连接开始前调用。
WillExecute 在对此连接执行挂起命令前调用,使用户能够检查和修改挂起执行参数。
WillMove WillMove 事件在挂起操作更改 Recordset 中的当前位置前调用。

online 2004-07-11
  • 打赏
  • 举报
回复
'引用microsoft activex data object 2.x library
Option Explicit
Private conn As ADODB.Connection
Private WithEvents rs As ADODB.Recordset

中间连接过程...
Private Sub rs_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
Dim i As Integer
List1.AddItem rs.Fields("订单号")
List1.AddItem pRecordset.Fields("订单号")
End Sub

1,216

社区成员

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

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