Zwischengespeicherte Aktualisierungen mittels einer Datenbank anwenden

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Aktualisierungen mit der BDE zwischenspeichern - Index


Hinweis: Die Borland Database Engine (BDE) ist veraltet und wird nicht mehr weiterentwickelt. Die BDE wird Unicode beispielsweise nie unterstützen. Sie sollten mit der BDE keine neuen Entwicklungen vornehmen. Überprüfen Sie, ob Sie Ihre vorhandenen Datenbankanwendungen nicht von der BDE nach dbExpress migrieren können.

Um zwischengespeicherte Aktualisierungen auf eine oder mehrere Datenmengen im Kontext einer Datenbankverbindung anzuwenden, rufen Sie die Methode ApplyUpdates der Datenbankkomponente auf. Der folgende Code wendet die Aktualisierungen in Reaktion auf ein Schaltflächenklick-Ereignis auf die Datenmenge CustomersQuery an:

Delphi:

procedure TForm1.ApplyButtonClick(Sender: TObject);
begin
  // Bei lokalen Datenbanken wie Paradox, dBASE und FoxPro
  // setzen Sie TransIsolation auf DirtyRead
  if not (Database1.IsSQLBased) and not (Database1.TransIsolation = tiDirtyRead) then
    Database1.TransIsolation := tiDirtyRead;
  Database1.ApplyUpdates([CustomersQuery]);
end;

C++:

void __fastcall TForm1::ApplyButtonClick(TObject *Sender)
{
  // Bei lokalen Datenbanken wie Paradox, dBASE und FoxPro
  // setzen Sie TransIsolation auf DirtyRead
  if (!Database1->IsSQLBased && Database1->TransIsolation != tiDirtyRead)
    Database1->TransIsolation = tiDirtyRead;
  Database1->ApplyUpdates(&CustomersQuery,0);
}

Die obige Sequenz schreibt zwischengespeicherte Aktualisierungen auf der Basis einer automatisch generierten Transaktion in die Datenbank. Ist dies erfolgreich, wird die Transaktion ausgeführt und anschließend werden die zwischengespeicherten Aktualisierungen übertragen. Ist dies nicht erfolgreich, wird die Transaktion zurückgesetzt und der Zwischenspeicher mit den Aktualisierungen bleibt unverändert. Im diesem Fall sollten Sie die Aktualisierungsfehler mit dem Ereignis OnUpdateError einer Datenmenge behandeln. Weitere Informationen zur Behandlung von Aktualisierungsfehlern finden Sie unter Fehlerbehandlung bei der zwischengespeicherten Aktualisierung.

Der wesentliche Vorteil beim Aufruf der Methode ApplyUpdates einer Datenbankkomponente besteht darin, dass Sie jede beliebige Anzahl von Datenbankkomponente aktualisieren können, die mit der Datenbank verbunden sind. Die Parameter für die Methode ApplyUpdates für eine Datenbank ist ein Array von TDBDataSet. Der folgende Code wendet beispielsweise die Aktualisierungen für zwei Abfragen an:

Delphi:

if not (Database1.IsSQLBased) and not (Database1.TransIsolation = tiDirtyRead) then
  Database1.TransIsolation := tiDirtyRead;
Database1.ApplyUpdates([CustomerQuery, OrdersQuery]);

C++:

TDBDataSet* ds[] = {CustomerQuery, OrdersQuery};
if (!Database1->IsSQLBased && Database1->TransIsolation != tiDirtyRead)
  Database1->TransIsolation = tiDirtyRead;
Database1->ApplyUpdates(ds,1);

Siehe auch