Delta-Pakete vor dem Aktualisieren der Datenbank bearbeiten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Auf Aktualisierungsanforderungen des Client reagieren


Bevor ein Datenmengen-Provider Aktualisierungen in die Datenbank einträgt, generiert er das Ereignis OnUpdateData. Der entsprechenden Behandlungsroutine wird eine Kopie des Delta-Pakets als Parameter übergeben. Dabei handelt es sich um eine Client-Datenmenge.

In der Behandlungsroutine für OnUpdateData können Sie alle Eigenschaften und Methoden der Client-Datenmenge verwenden, um das Delta-Paket zu bearbeiten, bevor es in die Datenmenge geschrieben wird. Eine besonders nützliche Eigenschaft ist UpdateStatus. Sie gibt an, auf welche Weise sich der aktuelle Datensatz im Delta-Paket (im Vergleich zur Datenbank) geändert hat. In der folgenden Tabelle sind die möglichen Werte für UpdateStatus aufgeführt:

Werte für UpdateStatus:



Wert Beschreibung

usUnmodified

Der Datensatz wurde nicht geändert.

usModified

Der Datensatz wurde geändert.

usInserted

Der Datensatz wurde eingefügt.

usDeleted

Der Datensatz wurde gelöscht.



In dem folgenden Beispiel weist die Behandlungsroutine für OnUpdateData jedem Datensatz, der neu in die Datenbank eingefügt wird, das aktuelle Datum zu:



 
 procedure TMyDataModule1.Provider1UpdateData(Sender: TObject; DataSet: TCustomClientDataSet);
 begin
   with DataSet do
   begin
     First;
     while not Eof do
     begin
       if UpdateStatus = usInserted then
       begin
         Edit;
         FieldByName('DateCreated').AsDateTime := Date;
         Post;
       end;
       Next;
     end;
 end;



 void __fastcall TMyDataModule1::Provider1UpdateData(TObject *Sender, TCustomClientDataSet *DataSet)
 {
   DataSet->First();
   while (!DataSet->Eof)
   {
     if (DataSet->UpdateStatus == usInserted)
     {
       DataSet->Edit();
       DataSet->FieldByName("DateCreated")->AsDateTime = Date();
       DataSet->Post();
     }
     DataSet->Next();
   }
 }



Siehe auch