![]() |
Reportbuilder und zwei Recordsets
Hallo.
Ich habe eine Stored Procedure in meinem MSSQL Server und möchte daraus ein Report erstellen bzw. erweitern. Mein Problem ist nun, dass mein ADOQuery nach der Ausführung zwei Recordsets enthält (da ich zwei SELECT's in der SP habe), der Reportbuilder jedoch die Felder aus dem Zweiten nicht "erkennt". Ist es möglich dem Report mitzuteilen, dass er beide Recordsets durchlaufen soll? Gruß und danke im Voraus! |
AW: Reportbuilder und zwei Recordsets
Hi,
stell deine Frage doch mal in der Newsgruppe von Digital Metaphors ( ![]() Dort wird dir sehr schnell jemand zu deinem Problem weiterhelfen :) MfG David |
AW: Reportbuilder und zwei Recordsets
Also ich kann mir nicht vorstellen, dass das Konzept bei einer Abfrage mehr als ein Recordset zurückzuliefern dem Reportbuilder bekannt ist.
Selbst nur mit ADO-Komponenten ist es ziemlich umständlich an das 2. Recordset heranzukommen. Du könntest eine weitere Stored Procedure schreiben, die die beiden Recordset im SQL Server zu einem Recordset zusammenfasst. ![]() |
AW: Reportbuilder und zwei Recordsets
Zitat:
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
Delphi-Quellcode:
die TADOQuery wieder geschlossen.
ADOQuery1.Recordset := ADOQuery1.NextRecordset( lRecAff );
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz