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_deletes (Tabellenereignis)

Verarbeitet Anweisungen im Zusammenhang mit einer angegebenen Tabelle, unmittelbar bevor in der entfernten Datenbank eine Liste mit in dieser Tabelle zu löschenden 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 einer Liste der aus der angegebenen Tabelle in der entfernten Datenbank zu löschenden Zeilen ausgeführt.

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

Siehe auch
SQL-Beispiel

Sie können die Datenmenge in entfernten Datenbanken minimieren, wenn Sie mit diesem Ereignis Daten markieren, die gelöscht werden sollen, wenn download_delete_cursor ausgeführt wird. Im folgenden Beispiel werden Verkaufskontakte zum Löschen aus der entfernten Datenbank markiert, die älter als 10 Wochen sind. Das Beispiel kann in einer SQL Anywhere 11-Datenbank benutzt werden.

Der folgende Aufruf einer MobiLink-Systemprozedur weist die gespeicherte Prozedur BeginDownloadDeletes dem Ereignis begin_download_deletes zu, wenn die Skriptversion ver1 synchronisiert wird.

CALL ml_add_table_script (
  'ver1', 
  'Leads', 
  'begin_download_deletes',
  'CALL BeginDownloadDeletes (
    {ml s.last_table_download}, 
    {ml s.username}, 
    {ml s.table})' );

Die folgende SQL-Anweisung erstellt die gespeicherte Prozedur BeginDownloadDeletes.

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

Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine Java-Methode namens beginDownloadDeletes als das Skript für das Tabellenereignis begin_download_deletes, wenn die Skriptversion ver1 synchronisiert wird.

CALL ml_add_java_table_script(
   'ver1',
   'table1',
   'begin_download_deletes',
   'ExamplePackage.ExampleClass.beginDownloadDeletes' )

Im Beispiel speichert die Java-Methode beginDownloadDeletes den Namen der aktuellen Tabelle für die Verwendung in einem späteren Methodenaufruf.

public String beginDownloadDeletes ( 
  Timestamp ts,
  String user, 
  String table ) {  
  _curTable = table;
  return ( null );
}
.NET-Beispiel

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

CALL ml_add_dnet_table_script (
  'ver1', 'table1', 'begin_download_deletes',
  'TestScripts.Test.BeginDownloadDeletes'
)

Im Beispiel speichert die .NET-Methode BeginDownloadDeletes den Namen der aktuellen Tabelle für die Verwendung in einem späteren Methodenaufruf.

public string BeginDownloadDeletes(
  DateTime timestamp,
  string user,
  string table ) {  
  _curTable = table;
  return ( null );
}