MobiLink-Benutzer authentifizieren
Informationen über MobiLink-Benutzer
Wenn zwei oder mehrere entfernte Datenbanken (UltraLite oder Adaptive Server Anywhere) denselben MobiLink-Benutzernamen verwenden sollen, erstellen Sie einen MobiLink-Benutzernamen, bei dem es sich um einen Basisnamen mit einem eindeutigen Suffix handelt.
Eine typische Verwendungsmöglichkeit dieser Methode liegt vor, wenn eine Person mehrere entfernte Datenbanken haben möchte. Jede entfernte Datenbank muss einen eindeutigen MobiLink-Benutzernamen haben, doch die Datenbanken können denselben Basisnamen gemeinsam verwenden.
Das folgende Beispiel erstellt MobiLink-Benutzernamen mit dem Basisnamen 102 gefolgt von einem Doppelpunkt und einer universell eindeutigen ID (UUID).
BEGIN EXECUTE IMMEDIATE 'CREATE SYNCHRONIZATION USER "102' + ':' + UUIDTOSTR(NEWID()) + '"'; END;
Hiermit werden MobiLink-Benutzernamen, wie etwa 102:b23fdbed-bead-418a-9d53-917e774c2f4f erstellt.
MobiLink muss dennoch den Benutzernamen für die einzelnen MobiLink-Skripten übergeben. Hierzu können Sie das MobiLink-Ereignis modify_user verwenden. Es verwendet den MobiLink-Benutzer als Eingabe und gestattet es Ihnen, den Namen zu ändern. Der geänderte Wert wird an alle Download-Ereignisse übergeben. Beispiel:
CALL sp_ML_modify_user( ? )
Das Ergebnis ist, dass der folgende download_cursor auf dem Wert 102 basiert, nicht auf 102:b23fdbed-bead-418a-9d53-917e774c2f4f.
Select emp_id, emp_name From ULEmployee Where last_modified > ? And emp_id = ?
Im Folgenden finden Sie die Prozedur in Adaptive Server Anywhere-Syntax. Sie kann einfach für andere RDBMS-Systeme konvertiert werden.
CREATE PROCEDURE sp_ML_modify_user( INOUT @ml_user_name VARCHAR(255) )
BEGIN
DECLARE @colon_at INT;
SET @colon_at = LOCATE( @ml_user_name, ':' );
IF( @colon_at > 0 ) THEN
-- Message statements are displayed in the minimized engine
-- window, this is useful for debugging
MESSAGE 'UUID: ' +
RIGHT( @ml_user_name,
(LENGTH(@ml_user_name)-@colon_at) );
SET @ml_user_name = LEFT( @ml_user_name, (@colon_at-1) );
MESSAGE 'New MobiLink User: ' + @ml_user_name;
ELSE
MESSAGE 'No change to MobiLink User: ' + @ml_user_name;
END IF;
END;
SQL Anywhere Studio 9.0.1
Copyright © 1989–2004 Sybase Inc. Teil-Copyright © 2001–2004 iAnywhere Solutions Inc. Alle Rechte vorbehalten.