VT-Daten löschen

Anfang  Zurück  Vor

Letzte Änderung 03.01.2014

 

VT-Daten löschen

 

Die Daten in einer Virtuellen Tabelle bleiben grundsätzlich solange erhalten, bis diese, z.B. durch ein neues Abfrageergebnis, überschrieben oder explizit gelöscht werden. Der Entwickler muss demnach vor allem beim Umgang mit großen Datenmengen darauf achten, dass es nicht zu einem Speicherüberlauf kommt. Für das Löschen von Daten stellt die Virtuelle Tabelle u.a. die folgenden Methoden zur Verfügung:

Gesamte Virtuelle Tabelle | clear( ) - Löscht die gesamte Virtuelle Tabelle.

Fahrzeuge.VT.clear();

Einzelne Zeile | deleteRow( ) - Löscht die Zeile mit dem Index row aus der Virtuellen Tabelle. Wenn Sie die selektierte Zeile einer XdevTable löschen möchten, müssen Sie zuerst den Index row mit getSelectedModelRow( ) ermitteln. Mit false wird die Zeile nur in der Virtuellen Tabelle gelöscht, mit true auch in der entsprechenden Datenbanktabelle. Der Methoden-Aufruf muss in einem Try-Catch Block stehen.

int row = table.getSelectedModelRow();
 
try
{
   Fahrzeuge.VT.deleteRow(row,true);
}
catch(DBException e)
{
   e.printStackTrace();
}

Mehrere Zeilen | deleteRows( ) - Löscht mehrere Zeilen aus der Virtuellen Tabelle. Häufig entsprechen die zu löschenden Zeilen der mit Mehrfachauswahl selektierten Zeilen einer XdevTable, die Sie mit getSelectedVirtualTableRows( ) ermitteln. Mit false werden die Zeilen nur in der Virtuellen Tabelle gelöscht, mit true auch in der entsprechenden Datenbanktabelle. Es ist jedoch empfehlenswert, sämtliche Zeilen erst einmal nur in der Virtuellen Tabelle zu löschen und diese dann abschließend mit der Datenbanktabelle zu synchronisieren, da die VT-Methode synchronizeChangedRows( ) automatisch als Transaktion ausgeführt wird. Der Löschvorgang muss in einem Try-Catch Block ausgeführt werden.

try
{
   for(VirtualTableRow row : table.getSelectedVirtualTableRows())
   {
      row.delete(false);
   }
   Fahrzeuge.VT.synchronizeChangedRows();
}
catch(DBException e)
{
   // TODO Auto-generated code
   e.printStackTrace();
}