FireDAC.Phys.MongoDBDataSet.TFDMongoDataSet.OnUpdateRecord
Delphi
property OnUpdateRecord: TFDUpdateRecordEvent read FOnUpdateRecord write FOnUpdateRecord;
C++
__property OnUpdateRecord;
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
event | published | FireDAC.Phys.MongoDBDataSet.pas FireDAC.Phys.MongoDBDataSet.hpp |
FireDAC.Phys.MongoDBDataSet | TFDMongoDataSet |
Beschreibung
Wird ausgelöst, wenn eine Datensatzaktualisierung in eine Datenbank eingetragen wird.
FireDAC.Phys.MongoDBDataSet.TFDMongoDataSet.OnUpdateRecord erbt von FireDAC.Comp.DataSet.TFDDataSet.OnUpdateRecord. Der folgende Inhalt bezieht sich auf FireDAC.Comp.DataSet.TFDDataSet.OnUpdateRecord.
Wird ausgelöst, wenn eine Datensatzaktualisierung in eine Datenbank eingetragen wird.
Mit einer OnUpdateRecord-Ereignisbehandlungsroutine verarbeiten Sie sofortige oder zwischengespeicherte Aktualisierungen, deren Behandlung problematisch ist:
- Verwenden der automatischen Generierung von SQL-Aktualisierungsanweisungen von FireDAC.
- Durch eine einzelne Tabellenadapterkomponente.
- Durch eine einzelne Aktualisierungskomponente.
Dieses Ereignis eignet sich besonders für Anwendungen für die Folgendes erforderlich ist:
- Zusätzliche Steuerungsmöglichkeiten für die Parameter- und Makrosubstitution in Aktualisierungskomponenten.
- Mehrfach-Aktualisierungen von SQL-Anweisungen, wenn das DBMS keine Stapel oder Blöcke unterstützt.
- Eintragen von Nicht-SQL-Aktualisierungen.
ASender
ist die Datenmenge, für die die Aktualisierungen eingetragen werden.
ARequest
gibt an, ob es sich bei der aktuellen Aktualisierung um das Einfügen, Löschen oder Ändern eines Datensatzes handelt.
AAction
gibt die Aktion an, die von der Ereignisbehandlungsroutine OnUpdateRecord beim Beenden durchgeführt wird. Beim Eintritt in die Routine wird AAction
immer auf eaDefault
gesetzt. Wenn OnUpdateRecord erfolgreich ausgeführt wurde, sollte AAction
vor dem Beenden auf eaApplied
gesetzt werden.
AAction-Wert |
Beschreibung |
---|---|
|
Kennzeichnet die Aktualisierung als fehlgeschlagen und gibt einen Fehler zurück |
|
Überspringt die aktuelle Aktualisierung und kennzeichnet sie nicht als eingetragen. |
|
Versucht, die aktuelle Operation erneut auszuführen. |
|
Kennzeichnet die aktuelle Aktualisierung als eingetragen. |
|
Übernimmt die Standardaktion. Bei einer erfolgreichen Aktualisierung lautet der Wert |
|
Beendet die Verarbeitung der zwischengespeicherten Aktualisierungen und gibt eine Erfolgsmeldung zurück. |
|
Beendet die Verarbeitung der zwischengespeicherten Aktualisierungen und gibt eine Fehlermeldung zurück. |
Im Code der OnUpdateRecord-Ereignisbehandlungsroutine sollte der Datenmengenfeldwert, einschließlich von NewValue, OldValue und CurValue, gelesen werden.
- NewValue ist der neue Feldwert vor dem Eintragen der Aktualisierungen.
- OldValue ist der ursprüngliche Feldwert nach dem Abrufen des Datensatzes oder nach dem Eintragen der letzten Aktualisierungen.
- CurValue ist der aktuelle Feldwert, derselbe Wert wie der der Eigenschaft Value.
Hinweis: Im Code der Ereignisbehandlungsroutine OnUpdateRecord dürfen keine Methoden aufgerufen werden, die die Position des aktuellen Datensatzes ändern.
Beispiel
procedure TForm1.FDQuery1UpdateRecord(ASender: TDataSet; ARequest: TFDUpdateRequest;
var AAction: TFDErrorAction; AOptions: TFDUpdateRowOptions);
begin
if ARequest = arInsert then begin
// set the SQL command to insert new record
FDQuery2.SQL := 'insert into mytab (id, code, name) values (:id, :code, :name) returning tmstamp into :ts';
// set parameter values
FDQuery2.Params[0].Value := ASender['id'];
FDQuery2.Params[1].Value := ASender['code'];
FDQuery2.Params[2].Value := ASender['name'];
// specially define TS parameter
FDQuery2.Params[3].DataType := ftDateTime;
FDQuery2.Params[3].ParamType := ptOutput;
// insert new record
FDQuery2.ExecSQL;
// move TS output parameter value back to dataset
ASender['tmstamp'] := FDQuery2.Params[3].Value;
// return 'Ok' status
AAction := eaApplied;
end;
end;
Siehe auch
- Überschreiben von Eintragsaktualisierungen
- FireDAC.Comp.DataSet.TFDDataSet.ApplyUpdates
- FireDAC.Comp.DataSet.TFDDataSet.CachedUpdates
- FireDAC.Comp.DataSet.TFDDataSet.OnUpdateError
Beispiele
- FireDAC TFDQuery OnUpdateRecord (Beispiel)