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

 

end_download (Verbindungsereignis)

Verarbeitet Anweisungen unmittelbar nachdem der MobiLink-Server die Vorbereitung der Download-Daten abgeschlossen hat.

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_download

TIMESTAMP. Zeit des letzten Downloads einer synchronisierten 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

Standardaktion

Keine.

Bemerkungen

Der MobiLink-Server führt dieses Skript aus, nachdem alle Zeilen heruntergeladen wurden. Wenn Sie die nicht blockierende Downloadbestätigung verwenden, wird das Skript nach dem Empfang der Empfangsbestätigung ausgeführt. Download-Daten werden in einer einzigen Transaktion verarbeitet. Die Ausführung dieses Skripts ist die letzte nicht statistische Aktion in dieser Transaktion.

Siehe auch
SQL-Beispiel

Im folgenden Beispiel wird eine mögliche Verwendung des Verbindungsskripts begin_download veranschaulicht. Die Tabelle ULEmpCust besitzt eine Aktionsspalte. Das folgende Skript verwendet den Wert dieser Spalte, um Datensätze aus der entfernten Datenbank zu löschen.

CALL ml_add_connection_script(
 'ver1',
 'end_download',
 'DELETE FROM ULEmpCust ec 
  WHERE ec.emp_id = {ml s.username} AND action = ''D''')
Java-Beispiel

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

CALL ml_add_java_connection_script(
  'ver1',
  'end_download',
  'ExamplePackage.ExampleClass.endDownloadConnection' )

Im Folgenden sehen Sie die Java-Beispielmethode endDownloadConnection. Die Tabelle ULEmpCust besitzt eine Aktionsspalte. Das folgende Skript verwendet den Wert dieser Spalte, um Datensätze aus der entfernten Datenbank zu löschen. Sie verwendet außerdem die (zuvor gespeicherte) aktuelle MobiLink-Verbindung, um vor dem Ende des Downloads eine Aktualisierung auszuführen. Diese SQL-Syntax gilt für konsolidierte SQL Anywhere-Datenbanken.

public String endDownloadConnection(
  Timestamp ts,
  String user )
  throws java.sql.SQLException {
  String del_sql = "DELETE FROM ULEmpCust ec " +
    "WHERE ec.emp_id = '" + user + "' " +
    "AND action = 'D' ";
  execUpdate( _syncConn, del_sql );
  return ( null );
}
.NET-Beispiel

Der folgende Aufruf einer MobiLink-Systemprozedur registriert eine .NET-Methode namens EndDownload als das Skript für das Verbindungsereignis end_download, wenn die Skriptversion ver1 synchronisiert wird.

CALL ml_add_dnet_connection_script(
 'ver1',
 'end_download',
 'TestScripts.Test.EndDownload' )

Im Folgenden sehen Sie die .NET-Beispielmethode EndDownload. Die Tabelle ULEmpCust besitzt eine Aktionsspalte. Das folgende Skript verwendet den Wert dieser Spalte, um Datensätze aus der entfernten Datenbank zu löschen. Sie verwendet außerdem die (zuvor gespeicherte) aktuelle MobiLink-Verbindung, um vor dem Ende des Downloads eine Aktualisierung auszuführen. Diese SQL-Syntax gilt für konsolidierte SQL Anywhere-Datenbanken.

public string EndDownload(
  DateTime timestamp,
  string user ) {
  string del_sql = "DELETE FROM ULEmpCust ec " +
   "WHERE ec.emp_id = '" + user + "' " +
   "AND action = 'D' ";
   execUpdate( _syncConn, del_sql );
  return ( null );
}