Transaktionen

Anfang  Zurück  Vor

Letzte Änderung 16.04.2014

 

Mit XDEV 5 können Sie jeden schreibenden Datenbankzugriff als Transaktion ausführen lassen. Dafür steht Ihnen in der Palette des Code-Editors mit der Anweisung transaction ein spezielles Code-Template zur Verfügung, in das Sie nur noch Ihren Datenbankzugriff einfügen müssen. In einen Transaktions-Block können Sie beliebig viele Datenbankzugriffe ausführen. Im Falle eines Fehlers werden alle Aktionen innerhalb des Transaktions-Blocks automatisch von der Datenbank rückgängig gemacht (Rollback).

 

try
{
   new Transaction()
   {
      @Override
      protected void write(DBConnection<?> connection) throws DBException
      {
         // Datenbankzugriffe schreibend
      }
   }.execute();
}
catch(DBException e)
{
   Application.getLogger().error(e);
}

 

 

 

Mehrere Virtuelle Tabellen synchronisieren

 

Das Speichern von Daten einer Virtuellen Tabelle mit der VT-Methode synchronizeChangedRows( ) erfolgt automatisch als Transaktion. Wenn Sie jedoch mehrere Virtuelle Tabellen gleichzeitig in einer Transaktion synchronisieren möchten, z.B. für das Speichern eines Datensatzes inklusive über n:m Relation verknüpfte Daten wie Fahrzeuge und Extras, dann müssen Sie sämtliche synchronizeChangedRows( ) Aufrufe in einem Transaktions-Block ausführen und für die Synchronisierung selbst jeweils die überladene Variante von synchronizeChangedRows( ) mit dem Parameter DBConnection verwenden. Mit dem Parameter DBConnection wird die jeweilige Datenbank-Connection connection übergeben, die vom Transaktions-Template erzeugt wird, sodass Sie sich darum nicht kümmern müssen.

 

try
{
   new Transaction()
   {
      @Override
      protected void write(DBConnection<?> connection) throws DBException
      {
         Fahrzeuge.VT.synchronizeChangedRows(connection);

         Extras.VT.synchronizeChangedRows(connection);
      }
   }.execute();
}
catch(DBException e)
{
   Application.getLogger().error(e);
}