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-Server-APIs » Synchronisationsskripten in Java erstellen » Referenz der MobiLink-Server-API für Java

 

DownloadTableData-Schnittstelle

Syntax
public ianywhere.ml.script.DownloadTableData
Bemerkungen

Verpackt Tabellenvorgänge für direkte MobiLink-Downloads. Richten Sie mit dieser Schnittstelle die Datenvorgänge ein, die auf den Client geladen werden. Mit der DownloadData-Schnittstelle rufen Sie DownloadTableData-Instanzen für die aktuelle Synchronisation ab. Sie können mit den Methoden DownloadTableData.getUpsertPreparedStatement und getDeletePreparedStatement mit Java vorbereitete Anweisungen für Einfügungen, Aktualisierungen oder Löschungen abrufen. Die Methode java.sql.PreparedStatement.executeUpdate registriert einen Vorgang für den Download.

Hinweis

Richten Sie alle Spaltenwerte für vorbereitete Einfüge- und Aktualisierungsanweisungen (Insert und Update). Für Löschvorgänge (Delete) müssen Sie Primärschlüsselwerte festlegen.

Die vorbereiteten Anweisungen zum Löschen einerseits und zum Einfügen und Aktualisieren andererseits können nicht gleichzeitig geöffnet sein.

Weitere Hinweise zu java.sql.PreparedStatement finden Sie in Ihrer Java SDK-Dokumentation.

Siehe auch
Mitglieder

Alle Mitglieder von ianywhere.ml.script.DownloadTableData, einschließlich aller geerbten Mitglieder.

Beispiel

Angenommen, Sie verwenden eine Tabelle namens remoteOrders in MobiLink-Clientdatenbanken.

CREATE TABLE remoteOrders (
    pk INT NOT NULL,
    col1 VARCHAR(200),
    PRIMARY KEY (pk)
);

Im folgenden Beispiel wird mit der Methode DownloadData.getDownloadTableByName eine DownloadTableData-Instanz zurückgegeben, die die remoteOrders-Tabelle darstellt.

Hinweis

Bei diesem Beispiel wird vorausgesetzt, dass eine DBConnectionContext-Instanz namens _cc vorhanden ist.

// The method used for the handle_DownloadData event
public void handleDownload() throws SQLException {

    // Get the DownloadData for the current synchronization.
    DownloadData my_dd = _cc.getDownloadData();
 
    // Get the DownloadTableData for the remoteOrders table.
    DownloadTableData td = my_dd.getDownloadTableByName("remoteOrders");

    // User defined-methods to set download operations.
    setDownloadInserts(td);
    setDownloadDeletes(td); 

    // ... 
}

In diesen Beispiel verwendet die Methode setDownloadInserts die Methode DownloadTableData.getUpsertPreparedStatement, um eine vorbereitete Anweisung für Zeilen abzurufen, die Sie einfügen oder aktualisieren möchten. Die Methoden PreparedStatement.setInt und PreparedStatement.setString legen die Spaltenwerte fest, die Sie in die entfernte Datenbank einfügen möchten.

void setDownloadInserts(DownloadTableData td) { 
    java.sql.PreparedStatement insert_ps = td.getUpsertPreparedStatement();

    // The following method calls are the same as the following SQL statement:
    // INSERT INTO remoteOrders(pk, col1) values(2300, "truck");
    insert_ps.setInt(1, 2300); 
    insert_ps.setString(2, "truck");

    int update_result = insert_ps.executeUpdate();
    if (update_result == 0) {
        // Insert was filtered because it was uploaded
        // in the same synchronization.
    } 
    else {
        // Insert was not filtered.
    }
}

Die Methode setDownloadDeletes ruft mit der Methode DownloadTableData.getDeletePreparedStatement eine vorbereitete Anweisung für Zeilen ab, die Sie löschen möchten. Die Methode java.sql.PreparedStatement.setInt legt die Primärschlüsselwerte für Zeilen fest, die Sie in der entfernten Datenbank löschen möchten. Die Methode java.sql.PreparedStatement.executeUpdate registriert die Zeilenwerte für den Download.

void setDownloadDeletes(DownloadTableData td) { 
    java.sql.PreparedStatement delete_ps = td.getDeletePreparedStatement();

    // The following method calls are the same as the following SQL statement:
    // DELETE FROM remoteOrders  where pk=2300;
    delete_ps.setInt(1, 2300); 
    delete_ps.executeUpdate();
}

getDeletePreparedStatement-Methode
getUpsertPreparedStatement-Methode
getName-Methode
getMetaData-Methode
getLastDownloadTime-Method