Hi Leute,
ich steh seit gestern Abend ein wenig auf dem Schlauch und bräuchte Eure Hilfe:
Ich habe in meinem Projekt eine Form mit DBGrid, dem ich zur Laufzeit eine dynamisch erzeugte DataSource zuweisen möchte, die auf einem DataModule liegt. Nun rufe ich von der Form eine, im DataModule liegende Function auf:
Delphi-Quelltext
1: 2: 3: 4: 5:
| function ebsExecuteSQL(intStatement: integer; parent_id: string): tDataSource; begin result := tempDataSource.Create(DataModule1); end; |
Die aufrufende Procedure sieht so aus:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin Form1.DBGrid1.DataSource := ebsExecuteSQL(1, '0'); end; |
Ich habe auch schon versucht (ursprünglicher Ansatz) mit Pointern über die Operatoren ^ und @ zu arbeiten, aber hiermit auch keine Lösung gefunden. Das Problem ist, dass mir die Zeile der Procedure eine Adressierungs-Exception rauswirft, mit der man natürlich nix anfangen kann.
Die eigentliche Idee dahinter: Ich möchte mir einen Vorrat an SQL-Statements anlagen, diese im Datamodule in eigens zur Laufzeit erzeugten Querys ausführen lassen und eine ebenfalls zur Laufzeit erzeugte DataSource über die Function zurückliefern.
Gibt es eventuell fertige Lösungen für diese Aufgabe?
Danke für Eure Hilfe
Patrick
Moderiert von
Narses: Delphi-Tags hinzugefügt
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.