当 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 |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |