Ändert den MobiLink-Benutzernamen.
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.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 Dies ist ein INOUT-Parameter. |
1 |
Keine.
Dieses Skript wird am Ende der Authentifizierungstransaktion aufgerufen.
Der MobiLink-Server gibt den Benutzernamen als Parameter an, wenn er Skripten aufruft. Der Benutzername wird vom MobiLink-Client gesendet. Manchmal kann es sinnvoll sein, einen anderen Benutzernamen zu verwenden. Mit diesem Skript können Sie den Benutzernamen ändern, der beim Aufruf von MobiLink-Skripts verwendet wird.
Der username-Parameter muss lang genug sein, um den Benutzernamen zu speichern.
SQL-Skripten für das Ereignis modify_user müssen als gespeicherte Prozeduren implementiert werden.
Eine flexiblere Methode zur Zuordnung des MobiLink-Benutzernamens ist die Verwendung von benutzerdefinierten benannten Parametern. Siehe Benutzerdefinierte benannte Parameter.
Im folgenden Beispiel wird der Name eines Benutzers einer entfernten Datenbank der ID des Benutzers zugeordnet, der dieses Gerät verwendet, indem es eine Zuordnungstabelle namens user_device verwendet. Diese Technik kann benutzt werden, wenn dieselbe Person mehrere entfernte Datenbanken betreibt (z.B. einen PDA und einen Laptop), für die dieselbe Synchronisationslogik erforderlich ist (basierend auf dem Namen oder der ID des Benutzers).
Der folgende Aufruf einer MobiLink-Systemprozedur weist die gespeicherte Prozedur ModifyUser dem Ereignis modify_user zu. Diese Syntax gilt für eine konsolidierte SQL Anywhere-Datenbank.
CALL ml_add_connection_script( 'ver1', 'modify_user', 'call ModifyUser( {ml s.username} )' ) |
Die folgende SQL-Anweisung erstellt die gespeicherte Prozedur ModifyUser.
CREATE PROCEDURE ModifyUser( INOUT u_name varchar(128) ) BEGIN SELECT user_name INTO u_name FROM user_device WHERE device_name = u_name; END |
Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine Java-Methode namens modifyUser als das Skript für das Verbindungsereignis modify_user, wenn die Skriptversion ver1 synchronisiert wird.
CALL ml_add_java_connection_script( 'ver1', 'modify_user', 'ExamplePackage.ExampleClass.modifyUser' ) |
Im Folgenden sehen Sie die Java-Beispielmethode modifyUser. Sie erhält die Benutzer-ID von der Datenbank und verwendet sie dann, um den Benutzernamen festzulegen.
public String modifyUser( InOutString ioUserName ) throws SQLException { Statement uidSelect = curConn.createStatement(); ResultSet uidResult = uidSelect.executeQuery( "SELECT rep_id FROM SalesRep WHERE name = '" + ioUserName.getValue() + "' " ); uidResult.next(); ioUserName.setValue( java.lang.Integer.toString(uidResult.getInt( 1 )); uidResult.close(); uidSelect.close(); return ( null ); } |
Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine .NET-Methode namens ModUser als das Skript für das Verbindungsereignis modify_user, wenn die Skriptversion ver1 synchronisiert wird.
CALL ml_add_dnet_connection_script( 'ver1', 'modify_user', 'TestScripts.Test.ModUser' ) |
Im Folgenden sehen Sie die .NET-Beispielmethode ModUser.
public string ModUser( string user ) { return ( "SELECT rep_id FROM SalesRep WHERE name = '" + user + "' " ); } |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |