该脚本可用于自定义发送给远程数据库的消息文本(错误、警告和信息)。
在下表中,说明部分提供 SQL 数据类型。如果您使用 Java 或 .NET 编写脚本,则应该使用相应的数据类型。 请参见SQL-Java 数据类型和SQL-.NET 数据类型。
在 SQL 脚本中,可以按名称或使用问号指定事件参数。不建议使用问号,建议您使用命名参数。不能在一个脚本中混合使用名称和问号。如果使用问号,则参数必须按照如下所示的顺序并且仅当没有指定任何后继参数时才是可选的(例如,如果您想使用参数 2,则必须使用参数 1)。如果使用命名参数,则可以按照任何顺序指定任意参数子集。
SQL 脚本的参数名称 | 说明 | 顺序(不建议用于 SQL) |
---|---|---|
s.error_message |
VARBINARY(1024)。这是 INOUT 参数,表示错误消息。 |
1 |
s.remote_id | VARCHAR(128)。MobiLink 远程 ID。只有在使用命名参数时才能引用远程 ID。 | 不适用 |
s.username |
VARCHAR(128)。MobiLink 用户名。 |
2 |
s.error_code |
INTEGER。与 error_message 关联的 MobiLink 错误代码。 |
3 |
s.script_version | VARCHAR(128)。可选的 IN 参数,可指定 MobiLink 服务器将用于当前同步的脚本版本字符串传递到此参数。不能使用问号指定此参数。 | 不适用 |
无。
本脚本能让您将 error_message 更改成比原始消息更易让远程用户和/或应用程序理解的内容。
modify_error_message 事件的 SQL 脚本必须作为存储过程实现。
下面的示例下载前一天的所有内容,不管那之后数据库是否进行过同步。
以下 SQL 语句创建 ModifyLastErrorMessage 存储过程:
CREATE PROCEDURE ModifyLastErrorMessage( inout error_message VARBINARY(1024), in username VARCHAR(128), in error_code INT ) BEGIN SELECT dateadd(day, -1, last_download_time ) INTO last_download_time END |
以下对 MobiLink 系统过程的调用为脚本版本 modify_ts_test 将 ModifyLastErrorMessage 指派给 modify_error_message 连接事件:
CALL ml_add_connection_script( 'modify_ts_test', 'modify_error_message', 'CALL ModifyLastErrorMessage ( {ml s.error_message}, {ml s.username}, {ml s.error_code} )' ); |
以下对 MobiLink 系统过程的调用在同步脚本版本 ver1 时将名为 modifyLastErrorMessage 的 Java 方法注册为 modify_error_message 连接事件的脚本。
CALL ml_add_java_connection_script( 'ver1', 'modify_error_message', 'ExamplePackage.ExampleClass.modifyLastErrorMessage' ) |
以下是 Java 方法 modifyLastErrorMessage 示例。它输出当前错误消息和错误代码。
package ExamplePackage; public class ExampleClass { String _curUser = null; public void modifyLastErrorMessage( ianywhere.ml.script.InOutString lastErrorMessage, String userName, int errorCode ) { java.lang.System.out.println( "error message: " + lastErrorMessage ); java.lang.System.out.println( "error code: " + String.valueOf(errorCode) ); }} |
以下对 MobiLink 系统过程的调用在同步脚本版本 ver1 时将名为 ModifyLastErrorMessage 的 .NET 方法注册为 modify_error_message 连接事件的脚本。
CALL ml_add_dnet_connection_script( 'ver1', 'modify_error_message', 'TestScripts.Test.ModifyLastErrorMessage' ) |
以下是 .NET 方法 ModifyLastErrorMessage 示例。它输出当前错误代码和错误消息。
namespace TestScripts { public class Test { string _curUser = null; public void ModifyLastErrorMessage ( ref string errorMessage, string userName, string errorCode ) { System.Console.WriteLine( "error message: " + errorMessage ); System.Console.WriteLine( "error code: " + errorCode ); }}} |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |