Das Skript kann verwendet werden, um den Meldungstext (Fehler, Warnung und Information), der an die entfernten Datenbanken gesendet wird, anzupassen.
In der folgenden Tabelle stellt die Beschreibung den SQL-Datentyp bereit. Wenn Sie Ihr Skript in Java oder .NET schreiben, müssen Sie den entsprechenden Datentyp benutzen. Siehe SQL-Java-Datentypen und SQL-.NET-Datentypen.
In SQL-Skripten können Sie Ereignisparameter mit ihrem Namen oder mit einem Fragezeichen angeben. Die Verwendung von Fragezeichen ist veraltet und es wird empfohlen, benannte Parameter zu verwenden. Sie können nicht Namen und Fragezeichen in einem Skript mischen. Wenn Sie Fragezeichen verwenden, müssen die Parameter in der nachfolgend gezeigten Reihenfolge stehen und sind nur dann optional, wenn keine nachfolgenden Parameter angegeben wurden (z.B. müssen Sie Parameter 1 verwenden, wenn Sie Parameter 2 verwenden möchten). Wenn Sie benannte Parameter verwenden, können Sie beliebige Teilmengen der Parameter in beliebiger Reihenfolge angeben.
Parametername für SQL-Skripten | Beschreibung | Reihenfolge (veraltet für SQL) |
---|---|---|
s.error_message |
VARBINARY(1024). Dies ist ein INOUT-Parameter, der die Fehlermeldung repräsentiert. |
1 |
s.remote_id | VARCHAR(128). Die entfernte ID von MobiLink. Sie können die entfernte ID nur dann referenzieren, wenn Sie benannte Parameter verwenden. | Nicht anwendbar |
s.username |
VARCHAR(128). Der MobiLink-Benutzername. |
2 |
s.error_code |
INTEGER. Der mit der Fehlermeldung verknüofte MobiLink-Fehlercode. |
3 |
Keine.
Dieses Skript bietet Ihnen die Möglichkeit, die Fehlermeldung so zu ändern, dass der entfernte Benutzer und/oder die Anwendung sie besser verstehen kann als die ursprüngliche Meldung.
SQL-Skripten für das Ereignis modify_error_message müssen als gespeicherte Prozeduren implementiert werden.
Das folgende Beispiel liest alle Daten vom Vortag ein, unabhängig davon, ob die Datenbanken seitdem synchronisiert wurden.
Die folgende SQL-Anweisung erstellt die gespeicherte Prozedur 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 |
Der folgende Aufruf einer MobiLink-Systemprozedur weist die Prozedur ModifyLastErrorMessage dem Verbindungsereignis modify_error_message für die Skriptversion modify_ts_test zu:
CALL ml_add_connection_script( 'modify_ts_test', 'modify_error_message', 'CALL ModifyLastErrorMessage ( {ml s.error_message}, {ml s.username}, {ml s.error_code} )' ); |
Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine Java-Methode namens modifyLastErrorMessage als das Skript für das Verbindungsereignis modify_error_message, wenn die Skriptversion ver1 synchronisiert wird.
CALL ml_add_java_connection_script( 'ver1', 'modify_error_message', 'ExamplePackage.ExampleClass.modifyLastErrorMessage' ) |
Im Folgenden sehen Sie die Java-Beispielmethode modifyLastErrorMessage. Sie druckt die aktuelle Fehlermeldung und den Fehlercode aus.
package ExamplePackage; public class ExampleClass { String _curUser = null; public String 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) ); return( null ); }} |
Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine .NET-Methode namens ModifyLastErrorMessage als das Skript für das Verbindungsereignis modify_error_message, wenn die Skriptversion ver1 synchronisiert wird.
CALL ml_add_dnet_connection_script( 'ver1', 'modify_error_message', 'TestScripts.Test.ModifyLastErrorMessage' ) |
Im Folgenden sehen Sie die .NET-Beispielmethode ModifyLastErrorMessage. Sie druckt den aktuellen Fehlercode und die Fehlermeldung aus.
namespace TestScripts { public class Test { string _curUser = null; public string ModifyLastErrorMessage ( ref string errorMessage, string userName, string errorCode ) { System.Console.WriteLine( "error message: " + errorMessage ); System.Console.WriteLine( "error code: " + errorCode ); return ( null ); }}} |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |