Verarbeitet zu Beginn der Synchronisation Anweisungen im Zusammenhang mit einer bestimmten Tabelle.
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 verwenden. 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 unten gezeigten Reihenfolge stehen und sind nur dann optional, wenn keine nachfolgenden Parameter angegeben wurden. (Sie müssen beispielsweise 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. |
1 |
s.table |
VARCHAR(128). Der Tabellenname. |
2 |
s.new_remote_id | VARCHAR(128). Die entfernte MobiLink-ID, wenn die entfernte ID in der konsolidierten Datenbank neu ist. Wenn die entfernte ID nicht neu ist, ist der Wert NULL. | |
s.new_username | VARCHAR(128). Der MobiLink-Benutzername, wenn der Benutzername in der konsolidierten Datenbank neu ist. Wenn der Benutzername nicht neu ist, ist der Wert NULL. | |
s.script_version | VARCHAR(128). Optionaler IN-Parameter, mit dem angegeben wird, dass der MobiLink-Server die bei der aktuellen Synchronisation verwendete Skriptversionszeichenfolge an diesen Parameter übergibt. Fragezeichen können nicht verwendet werden, um diesen Parameter anzugeben. | Nicht anwendbar |
Keine.
Der MobiLink-Server führt dieses Ereignis aus, nachdem er vom MobiLink-Client alle für den Beginn der Synchronisation erforderlichen Daten empfangen hat.
Sie können für jede Tabelle in der entfernten Datenbank ein begin_synchronization-Skript benutzen. Das Ereignis wird nur aufgerufen, wenn die Tabelle synchronisiert wird.
Das Tabellenereignis begin_synchronization wird benutzt, um die Synchronisation einer bestimmten Tabelle einzurichten. Das folgende SQL-Skript registriert ein Skript, das eine temporäre Tabelle zum Speichern von Zeilen während der Synchronisation erstellt. Diese Syntax gilt für eine konsolidierte SQL Anywhere-Datenbank.
CALL ml_add_table_script( 'ver1', 'sales_order', 'begin_synchronization', 'CREATE TABLE #sales_order ( id integer NOT NULL default autoincrement, cust_id integer NOT NULL, order_date date NOT NULL, fin_code_id char(2) NULL, region char(7) NULL, sales_rep integer NOT NULL, PRIMARY KEY (id), )' ) |
Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine Java-Methode namens beginSynchronizationTable als das Skript für das Tabellenereignis begin_synchronization, wenn die Skriptversion ver1 synchronisiert wird.
CALL ml_add_java_table_script( 'ver1', 'table1', 'begin_synchronization', 'ExamplePackage.ExampleClass.beginSynchronizationTable' ) |
Im Folgenden sehen Sie die Java-Beispielmethode beginSynchronizationTable. Sie fügt den aktuellen Tabellennamen zu einer Liste der Tabellennamen in dieser Instanz hinzu.
package ExamplePackage; import java.util.ArrayList; import java.sql.Timestamp; class ExampleClass { ArrayList<String> _tableList; String _curTable; public void beginSynchronizationTable( String user, String table ) { _curTable = table; _tableList.add( table ); } public void endTableDownload( Timestamp ts, String user, String table ) { _curTable = null; } } |
Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine .NET-Methode namens BeginTableSync als das Skript für das Tabellenereignis begin_synchronisation, wenn die Skriptversion ver1 und die Tabelle table1 synchronisiert werden.
CALL ml_add_dnet_table_script ( 'ver1', 'table1', 'begin_synchronization', 'TestScripts.Test.BeginTableSync' ) |
Im Folgenden sehen Sie die .NET-Beispielmethode BeginTableSync. Sie fügt den aktuellen Tabellennamen zu einer Liste der Tabellennamen in dieser Instanz hinzu.
using System.Collections.Generic; using System; namespace TestScripts { class Test { List<string> _tableList = new List<string>(); string _curTable = ""; public void BeginSynchronizationTable( string user, string table ) { _curTable = table; _tableList.Add( table ); } public void EndTableDownload( DateTime timestamp, string user, string table ) { _curTable = null; } } } |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |