Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » MobiLink - 客户端管理 » 用于 MobiLink 的 SQL Anywhere 客户端 » Dbmlsync 集成组件(不建议使用) » Dbmlsync 集成组件的事件

 

Message 事件

当 dbmlsync 记录信息时,会触发 Message 事件。

语法
Public Event Message(_
  ByVal msgClass As DbmlsyncCOM.MessageClass, _
  ByVal msgID As Integer, ByVal msg As String_
)
Member of DbmlsyncCOM.Dbmlsync
参数

msgClass   指示消息的严重级。值可以是:

  • MsgInfo   包含有关同步的进度信息的消息。

  • MsgDetailedInfo   类似 MsgInfo,但包含更多的详细信息。

  • MsgWarning   表示存在潜在问题(但该问题不会妨碍同步成功)的消息。

  • MsgError   表示存在会妨碍同步成功的问题的消息。

msgID   消息的唯一标识符。如果 msgID 为 0,则消息没有唯一标识符。

msg   消息的文本。

注释

可以使用此事件接收 dbmlsync 记录的信息。如果在生成特定消息时要添加特殊处理,可通过 MsgID 进行检查。这样,您的代码在消息文本更改后将会继续运行。

示例

下面的 Visual Basic .NET 示例将 dbmlsync 记录的消息添加到列表框控件中。

Private Sub dbmlsync1_Message(
 ByVal msgClass As DbmlsyncCOM.MessageClass,
 ByVal msgId As Integer, ByVal msg As String
)
Handles dbmlsync1.Message
    
    Select Case msgClass
        Case DbmlsyncCOM.MessageClass.MsgError
            lstMessages.Items.Add("Error: " + msg)
        Case DbmlsyncCOM.MessageClass.MsgWarning
            lstMessages.Items.Add("Warning: " + msg)
        Case DbmlsyncCOM.MessageClass.MsgInfo
            lstMessages.Items.Add("Info: " + msg)
        Case DbmlsyncCOM.MessageClass.MsgDetailedInfo
            lstMessages.Items.Add("DetInfo: " + msg)
    End Select

End Sub
示例

以下 Visual Basic .NET 示例设置 Message 事件来处理错误。错误消息被添加到称为 lstMessages 的列表框控件中。

Private Sub dbmlsync1_Message(ByVal msgClass As DbmlsyncCOM.MessageClass, ByVal msgId As Integer, ByVal msg As String) Handles dbmlsync1.Message
  If msgClass = DbmlsyncCOM.MessageClass.MsgError Then
   lstMessages.Items.Add("Error: " + msgId.ToString() + " " + msg)
  End If
End Sub

要查看可能存在的错误 ID 值,可测试运行 Dbmlsync 集成组件。例如,如果 dbmlsync 返回错误消息 "无法连接到 MobiLink 服务器",Message 事件将在 lstMessages 中插入以下条目:

Error: 14173 Unable to connect to MobiLink server.

现在,可以将错误 "无法连接到 MobiLink 服务器" 与错误 ID 14173 相关联。以下示例设置 Dbmlsync 集成组件以在每次发生错误 14173 时重试同步。发生错误 14173 后,Message 事件设置称为 restartSynchronization 的变量并且重置称为 numberOfRestarts 的变量。EndSynchronization 事件会重试同步,最多重试五次。

' variables for restarting synchronization
Dim numberOfRestarts As Integer = 0
Dim restartSynchronization As Integer = 0



Private Sub dbmlsync1_Message
(
 ByVal msgClass As DbmlsyncCOM.MessageClass,
 ByVal msgId As Integer, ByVal msg As String ) Handles dbmlsync1.Message
    
 If msgClass = DbmlsyncCOM.MessageClass.MsgError Then
     lstMessages.Items.Add("Error: " + msgId.ToString() + " " + msg)

     If msgId = 14173 Then
       restartSynchronization = 1
       numberOfRestarts = 0
     End If
 End If
End Sub

Private Sub dbmlsync1_EndSynchronization(ByVal ExitCode As Integer, _
    ByRef restart As Boolean _
    ) Handles dbmlsync1.EndSynchronization
    

    If restartSynchronization = 1 Then
      If numberOfRestarts < 5 Then
         restart = True
         numberOfRestarts = numberOfRestarts + 1
      End If
    End If
End Sub