ich stehe auf dem schlauch

Mit einer ZQuery kann ich mit .First den ersten Datensatz greifen, mit .Last den letzten - aber wie kann ich den aktuellen Datensatz ermitteln ?
Gruß Frank
Code: Alles auswählen
procedure ....;
var PrevRecord: TBookmark;
begin
PrevRecord:=ZQueryX.GetBookmark;
try
mach irgendwas
finally
if PrevRecord <> nil then
begin
ZQueryX.GotoBookmark(PrevRecord);
ZQueryX.FreeBookmark(PrevRecord);
end;
end;
end;
Dann nimm halt für die Prüfung nicht dieselbe Query. Evtl gibt es bei ZEOS auch ein Dataset.Clone, durch das man sich einen zweiten unabhängigen Cursor erzeugen kann. Oder erzeuge dir eine zweite ZQuery mit demselben SQL-Text (oder besser: nur mit den Feldern, die du prüfen willst), führst diese im OnBeforePost der Query aus, die editiert wird, und falls die Suchquery den geänderten Datensatz schon findest, brichst du das Speichern mit Abort ab.DL3AD hat geschrieben:... ja dass ist klar.
In einem DBGrid habe ich eine Datensatz ausgewählt - der ist nun der aktuelle.
Nun ändere ich in einer Eingabemaske die Daten. vor dem schreiben in die DB prüfe ich mit einer DB Abfrage ob die Daten dann doppelt sein würden.
Bei der Abfrage verliere ich dann den aktuellen Datensatz den ich zuvor zum Editieren gewählt hatte.