Wie kann ich auf einen Datensatz zugreifen, den ich mir vorher mit Clientdataset.recno gemerkt habe.
Ich habe im Ergebnis möglicherweise mehrere Datensätze gefunden und nun will ich den aktuellsten raussuchen. Das scheint ja auch zu gehen, und ich merke mir die Datensatznummer mit ActIndex:=CDS.RecNo. Wie kann ich aber später wieder zugreifen? Zwischenzeitlich kann ja in der Schleife ein anderer aktuell sein.
Mit First, Last, Moveby scheint das ja nicht zu gehen.
Ich habe schon in verschiedenen Foren gesucht, aber dazu nichts gefunden.
Vielleicht so: CDS.ActRec:=ActnIdex, aber diese Funktion scheint es nicht zu geben.
Delphi-Quellcode:
if CDS.FindFirst then begin
repeat
ZeitNew:=CDS.FieldByName(NodeChildLastWrite).AsDateTime;
Anzahl:=Anzahl+1;
if ZeitNew>ZeitSaved then begin
fName:=CDS.FieldByName(NodeChildfName).AsString;
ActIndex:=CDS.RecNo; //den Datensatz merken, fürs nachträgliche Ändern von "letzter Lesezugriff"
end;
until CDS.FindNext = false;
//wenn was gefunden wurde
if fName<>'' then begin
fnameWZK:=fName;
result:=True;
//hier muss ja nicht immer der letzte Datensatz oben gemerkt worden sein!!
CDS.Edit;
CDS.FieldValues[NodeChildLastRead]:=now; //Update für letzten Lesezugriff
CDS.Post;
end;
end;