Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Reportbuilder und zwei Recordsets

  Alt 31. Jan 2012, 14:19
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)
  Mit Zitat antworten Zitat