Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Serveradministration » MobiLink-Ereignisse » Synchronisationsereignisse

 

begin_download_rows (Tabellenereignis)

Verarbeitet Anweisungen im Zusammenhang mit einer angegebenen Tabelle, unmittelbar bevor in der entfernten Datenbank eine Liste mit in dieser Tabelle einzufügenden oder zu aktualisierenden Zeilen abgerufen wird.

Parameter

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. Weitere Hinweise finden Sie unter SQL-Java-Datentypen und SQL-.NET-Datentypen.

In SQL-Skripten können Sie Ereignisparameter mit ihrem Namen oder mit einem Fragezeichen angeben. Namen und Fragezeichen dürfen jedoch in einem Skript nicht gemischt verwendet werden. 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
s.last_table_download TIMESTAMP. Zeitpunkt des letzten Downloads der Tabelle. 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.table VARCHAR(128). Der Tabellenname 3
Standardaktion

Keine.

Bemerkungen

Dieses Ereignis wird unmittelbar vor dem Abrufen des Datenstroms der Zeilen ausgeführt, die in die angegebene Tabelle in der entfernten Datenbank eingefügt oder dort aktualisiert werden sollen.

Für jede Tabelle in der entfernten Datenbank können Sie ein begin_download_rows-Skript benutzen.

Siehe auch
SQL-Beispiel

Sie können das Tabellenereignis begin_download_rows benutzen, um Zeilen zu markieren, für die kein Download mehr in dieser Tabelle ausgeführt werden soll. Das folgende Beispiel archiviert Verkaufskontakte, die älter als sieben Tage sind.

Der folgende Aufruf einer MobiLink-Systemprozedur registriert die gespeicherte Prozedur BeginDownloadRows für das Ereignis begin_download_rows.

CALL ml_add_table_script( 
  'version1', 
  'Leads',
  'begin_download_rows',
  'CALL BeginDownloadRows (
    {ml s.last_table_download}, 
    {ml s.username}, 
    {ml s.table})' ); )

Die folgende SQL-Anweisung erstellt die gespeicherte Prozedur BeginDownloadRows.

CREATE PROCEDURE BeginDownloadRows (
  LastDownload timestamp, MLUser varchar(128),
  TableName varchar(128) )
BEGIN
  execute immediate 'update ' || TableName ||
  ' set download_flag = 0 where
  days(creation_time, CURRENT DATE) > 7 and Owner = '
  || MLUser;
END;
Java-Beispiel

Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine Java-Methode namens beginDownloadRows als das Skript für das Tabellenereignis begin_download_rows, wenn die Skriptversion ver1 synchronisiert wird. Diese Syntax gilt für konsolidierte SQL Anywhere-Datenbanken.

CALL ml_add_java_table_script(
   'ver1',
   'table1',
   'begin_download_rows',
   'ExamplePackage.ExampleClass.beginDownloadRows' )

Im Folgenden sehen Sie die Java-Beispielmethode beginDownloadRows. Sie erzeugt unter Verwendung der Tabelle und des Benutzers für die MobiLink-Ausführung eine UPDATE-Anweisung.

public String beginDownloadRows( 
  Timestamp ts,
  String user, 
  String table ) {  
  return( "update " + table + " set download_flag = 0 "
   + " where days(creation_time, CURRENT DATE) > 7 " +
   " and Owner = '" + user + "'" ); 
}
.NET-Beispiel

Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine .NET-Methode namens BeginDownloadRows als das Skript für das Tabellenereignis begin_download_rows, wenn die Skriptversion ver1 und die Tabelle table1 synchronisiert werden.

CALL ml_add_dnet_table_script(
  'ver1', 'table1', 'begin_download_rows',
  'TestScripts.Test.BeginDownloadRows'
)

Im Folgenden sehen Sie die .NET-Beispielmethode BeginDownloadRows. Sie erzeugt unter Verwendung der Tabelle und des Benutzers für die MobiLink-Ausführung eine UPDATE-Anweisung.

public string BeginDownloadRows(
  DateTime timestamp,
  string user,
  string table ) {  
  return( "update " + table + " set download_flag = 0 "
   + " where days(creation_time, CURRENT DATE) > 7 " +
   " and Owner = '" + user + "'" ); 
}