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) » UltraLite - M-Business Anywhere-Programmierung » Entwicklung mit UltraLite für M-Business Anywhere » Mit Daten unter Verwendung der Tabellen-API arbeiten

 

Zeilen einfügen, löschen und aktualisieren

UltraLite legt Ihrer Anwendung die Zeilen in einer Tabelle einzeln vor. Das ULTable-Objekt hat eine aktuelle Position, die sich in einer Zeile, vor der ersten Zeile oder nach der letzten Zeile der Tabelle befinden kann.

Wenn Ihre Anwendung die Position ändert, fertigt UltraLite eine Kopie der Zeile in einem Puffer an. Alle Vorgänge, die Werte abrufen oder festlegen, betreffen nur die Kopie der Daten in diesem Puffer. Sie haben keinen Einfluss auf die Daten in der Datenbank.

Beispiel

Die folgende Anweisung ändert den Wert der ersten Spalte im Puffer auf 3.

tCustomer.setInt( 1 , 3 );
UltraLite-Modi verwenden

Der UltraLite-Modus legt den Zweck fest, für den die Werte im Puffer verwendet werden sollen. Die vier nachstehenden Betriebsmodi stehen in UltraLite zusätzlich zum Standardmodus zur Verfügung.

  • Einfügungsmodus (insert)   Die Daten im Puffer werden der Tabelle als neue Zeile hinzugefügt, wenn die ULTable.insert-Methode aufgerufen wird.

  • Aktualisierungsmodus (update)   Die Daten im Puffer ersetzen die aktuelle Zeile, wenn die ULTable.update-Methode aufgerufen wird.

  • Suchmodus (find)   Wird verwendet, um eine Zeile zu finden, deren Wert genau mit den Daten im Puffer übereinstimmt, wenn eine der ULTable.find-Methoden aufgerufen wird.

  • Nachschlagemodus (lookup)   Wird verwendet, um eine Zeile zu finden, deren Wert gleich oder größer als die Daten im Puffer ist, wenn eine der ULTable.lookup-Methoden aufgerufen wird.

♦  So aktualisieren Sie eine Zeile
  1. Wechseln Sie zu der zu aktualisierenden Zeile.

    Sie können dafür entweder durch die Tabelle blättern oder die Find- und Lookup-Methoden verwenden.

  2. Aktivieren Sie den Update-Modus.

    In der folgenden Anweisung wird als Beispiel der Update-Modus für die Tabelle tCustomer aktiviert:

    tCustomer.updateBegin();
  3. Legen Sie die neuen Werte für die zu aktualisierende Zeile fest.

    Die folgende Anweisung setzt beispielsweise den neuen Wert auf Elizabeth.

    tCustomer.setString( 2, "Elizabeth" );
  4. Führen Sie die Aktualisierung aus.

    tCustomer.update();

Nach der Aktualisierung ist die soeben aktualisierte Zeile die aktuelle Zeile. Wenn Sie den Wert einer Spalte in jenem Index ändern, der beim Öffnen des ULTable-Objekts angegeben wurde, wirkt sich das auf die Positionierung aus.

Standardmäßig arbeitet UltraLite im autoCommit-Modus, sodass das Update der Zeile unmittelbar für die permanente Speicherung übernommen wird. Wenn Sie den autoCommit-Modus deaktiviert haben, wird das Update erst übernommen, sobald Sie den Commit-Vorgang ausführen. Weitere Hinweise zum autoCommit-Modus finden Sie unter Transaktionen verwalten.

Achtung

Aktualisieren Sie nicht den Primärschlüssel einer Zeile: Löschen Sie stattdessen die Zeile und fügen Sie eine neue Zeile hinzu.

Zeilen einfügen

Die Schritte zum Einfügen einer Zeile sind den Schritten zum Aktualisieren von Zeilen ähnlich, außer dass es nicht erforderlich ist, eine bestimmte Zeile in der Tabelle ausfindig zu machen, bevor der Einfügevorgang vorgenommen werden kann. Im Index, der zum Öffnen der Tabelle verwendet wird, werden Zeilen automatisch sortiert.

♦  So fügen Sie eine Zeile ein
  1. Aktivieren Sie den Insert-Modus.

    In der folgenden Anweisung wird als Beispiel der Insert-Modus für die Tabelle CustomerTable aktiviert:

    tCustomer.insertBegin();
  2. Setzen Sie die Werte für die neue Zeile.

    Wenn Sie für eine der Spalten keinen Wert festlegen und diese Spalte einen Standardwert enthält, wird der Standardwert verwendet. Wenn die Spalte keinen Standardwert hat, wird NULL verwendet. Wenn die Spalte NULL nicht zulässt, werden die folgenden Standardwerte verwendet:

    • Bei nummerischen Spalten Null

    • Bei Zeichenspalten eine leere Zeichenfolge

    Mit der Methode setNull wird ein Wert ausdrücklich auf NULL gesetzt.

    colID = tCustomer.schema.getColumnID( "id" );
    colFirstName = tCustomer.schema.getColumnID( "fname" );
    colLastName = tCustomer.schema.getColumnID( "lname" );
    tCustomer.setInt( colID, 42 );
    tCustomer.setString( colFirstName, "Mitch" );
    tCustomer.setString( colLastName, "McLeod" );
  3. Führen Sie die Einfügeanweisung aus.

    Die Einfügung wird permanent in der Datenbank gespeichert, wenn ein Commit ausgeführt wird. Im autoCommit-Modus wird die Commit-Anweisung als Teil der Insert-Methode ausgeführt.

    tCustomer.insert();
Zeilen löschen

Es gibt keinen Löschmodus, der dem Einfügungs- oder Aktualisierungsmodus entsprechen würde.

Mit der folgenden Prozedur wird eine Zeile gelöscht.

♦  So löschen Sie eine Zeile
  1. Wechseln Sie zu der zu löschenden Zeile.

  2. Führen Sie den Löschvorgang aus:

    tCustomer.deleteRow();