Benutzen Sie dieses Skript, wenn Sie die Uhrzeit des letzten Downloads für die nächste Synchronisation ändern möchten.
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.next _last_download |
TIMESTAMP. Dies ist ein INOUT-Parameter. Der MobiLink-Server generiert diesen Wert direkt nach Festschreibung des Uploads. |
1 |
s.last_download |
TIMESTAMP. Dies ist die Uhrzeit des letzten Downloads für die aktuelle Synchronisation. |
2 |
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. |
3 |
Keine.
Das Skript kann zur Änderung des Zeitstempels next_last_download verwendet werden, der den Zeitstempel last_download für die nächste Synchronisation ändert. Dies ermöglicht Ihnen, die nächste Synchronisation ohne Auswirkung auf die aktuelle Synchronisation zurückzusetzen. Während der normalen Synchronisation ist die next_last_download-Zeit später als die last_download-Zeit. Manchmal sind die beiden Werte aber auch gleich.
SQL-Skripten für das Ereignis modify_next_last_download_timestamp müssen als gespeicherte Prozeduren implementiert werden. Der MobiLink-Server übergibt den next_last_download-Zeitstempel als ersten Parameter an die gespeicherte Prozedur und ersetzt den Zeitstempel durch den ersten Wert, der von der gespeicherten Prozedur übergeben wird.
Dieses Skript wird in der Download-Transaktion ausgeführt, nach dem Herunterladen von Benutzertabellen, aber der Ausgabewert Ihrer gespeicherten Prozedur sollte dem Beginn der Download-Transaktion entsprechen, damit die während der Download-Transaktion geänderte Zeilen bei der nächsten Synchronisation heruntergeladen werden.
Folgendes Beispiel zeigt eine Anwendung für dieses Skript. Erstellen Sie eine gespeicherte Prozedur. Die folgende Syntax gilt für eine konsolidierte SQL Anywhere-Datenbank.
CREATE PROCEDURE ModifyNextDownloadTimestamp( inout next_last_download TIMESTAMP , in last_download TIMESTAMP , in user_name VARCHAR(128) ) BEGIN SELECT dateadd(hour, -1, next_last_download ) INTO next_last_download END |
Installieren Sie das Skript in der konsolidierten SQL Anywhere-Datenbank:
CALL ml_add_connection_script( 'modify_ts_test', 'modify_next_last_download_timestamp', 'CALL ModifyNextDownloadTimestamp ( {ml s.next_last_download}, {ml s.last_download}, {ml s.username} )' ) |
Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine Java-Methode namens modifyNextDownloadTimestamp als das Skript für das Verbindungsereignis modify_next_last_download_timestamp, wenn die Skriptversion ver1 synchronisiert wird.
CALL ml_add_java_connection_script( 'ver1', 'modify_next_last_download_timestamp', 'ExamplePackage.ExampleClass.modifyNextDownloadTimestamp' ) |
Im Folgenden sehen Sie die Java-Beispielmethode modifyNextDownloadTimestamp. Sie setzt den Download-Zeitstempel um eine Stunde zurück.
public String modifyNextDownloadTimestamp( Timestamp NextLastDownload, Timestamp lastDownload, String userName ) { NextLastDownload.setHours( NextLastDownload.getHours() -1 ); return( null ); } |
Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine .NET-Methode namens ModifyNextDownloadTimestamp als das Skript für das Verbindungsereignis modify_next_last_download_timestamp, wenn die Skriptversion ver1 synchronisiert wird.
CALL ml_add_dnet_connection_script( 'ver1', 'modify_next_last_download_timestamp', 'TestScripts.Test.ModifyNextDownloadTimestamp' ) |
Im Folgenden sehen Sie die .NET-Beispielmethode ModifyNextDownloadTimestamp. Sie setzt den Download-Zeitstempel um eine Stunde zurück.
using System; using System.Data; namespace TestScripts { public class Test { String _curUser = null; public string ModifyNextDownloadTimestamp ( ref DateTime next_last_download, DateTime last_download, string user_name ) { next_last_download = next_last_download.AddHours( -1 ); return ( null ); }}} |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |