Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#4

AW: Query aus anderer Unit verändern

  Alt 10. Okt 2017, 12:04
Lege dazu alle Querys ... in ein Datenmodul. Auf dieses kannst Du dann von beiden Units aus zugreifen.

Gehen wir davon aus, dass Du über Unit1, Unit2 und Unit3 verfügst.

Unit1 und Unit2 hast Du bereits. Unit3 wird das DataModule1 enthalten.
Sowohl in Unit1, als auch in Unit2 musst Du Unit3 in die Uses-Klausel einfügen.

Nun könntest Du aus Unit2 die Query sinngemäß im DataModule1 in dieser Form ansprechen:

Datamodule1.Query.SQL.Text := 'Ergebnis Deiner Zusammenstellung des SQLs.';

In Unit1 könntest Du diese Query dann in der Art ansprechen:

Datamodule1.Query.Open;

Der DataSource im in Unit1, die mit dem DBGrid verbunden ist, müsstest Du bereits im Objektinspektor die Query aus dem DataModule1 zuweisen können. Im Quelltext könnte das so gehen:

DataSource1.DataSet := DataModule1.Query;

Allerdings könntest Du beim Schließen der Suchmaske in etwa auch so vorgehen.

(Nur hingedaddelt und ungetestet)
Delphi-Quellcode:
procedure Form2.Button1Click(Sender : TObject);
begin
  Datamodule1.Query.Close;
  Datamodule1.Query.SQL.Text := 'Ergebnis Deiner Zusammenstellung des SQLs.';
  Datamodule1.Query.Open;
  Close;
end;
Damit musst Du dann nicht in beiden Formularen 'ne Query vorhalten und Dich in beiden Formularen um die Handhabung der Abfragen kümmern.
  Mit Zitat antworten Zitat