Selbst nur mit
ADO-Komponenten ist es ziemlich umständlich an das 2. Recordset heranzukommen.
Da kenne ich aber erheblich umständlichere Sachen, als diese weiteren RecordSets:
Hier mal so ein schnell dahin getipptes etwas, was ein TDataSet in ein ClientDataSet kopiert und von einem TADOQuery die RecordSets durchwandert.
Wenn kein RecordSet mehr vorhanden ist, dann wird hierdurch
ADOQuery1.Recordset := ADOQuery1.NextRecordset( lRecAff );
die TADOQuery wieder geschlossen.
Delphi-Quellcode:
procedure CDSLoadFromDataSet( aClientDataSet : TCustomClientDataSet; aDataSet : TDataSet );
var
lDataProv : TDataSetProvider;
begin
aClientDataSet.Close;
lDataProv := TDataSetProvider.Create( nil );
try
lDataProv.DataSet := aDataSet;
aClientDataSet.SetProvider( lDataProv );
aClientDataSet.Open;
finally
lDataProv.Free;
end;
end;
procedure TForm1.Button1Click( Sender : TObject );
var
lRecAff : Integer;
begin
if not ADOQuery1.Active
then
ADOQuery1.Open
else
ADOQuery1.Recordset := ADOQuery1.NextRecordset( lRecAff );
if ADOQuery1.Active
then
CDSLoadFromDataSet( ClientDataSet1, ADOQuery1 )
else
ClientDataSet1.Close;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)