![]() |
Query dynamisch erzeugen?
Hi, alle miteinander!
Vielleicht weiss von Euch jemand Rat... Ich habe eine Klasse für den Zugriff auf eine Datenbank geschrieben. Logischerweise brauche ich eine TQuery-Komponente, wenn ich meine SQL-Statements absetzen möchte. Mein Problem ist jetzt, dass ich diese TQuery-Komponente gerne innerhalb der Klasse dynamisch erzeugen möchte. Bisher ist es so gelöst, dass ich grundsätzlich als ersten Parameter meiner Methoden ein Query-Objekt aus dem Formular übergebe, das die Klasse benutzt. Das heisst, meine Methodendeklarationen sind alle nach nachfolgendem Muster aufgebaut:
Code:
Ich denke, der Konstruktor meiner Klasse sollte eine interne Query-Komponente erzeugen, aber das bekomme ich nicht hin.
Methodenname(Query: TQuery; Restliche Parameter);
Wäre klasse, wenn mir jemand auf die Sprünge helfen könnte... :P Matthias |
Hallo
vieleicht hilft dir diese procedure etwas weiter hier wird ein TQuery dynamisch erzeugt. var SQL1 : TQuery; TS : TStringList; begin TS := TStringList.Create; try SQL1 := TQuery.Create(Self); try SQL1.DatabaseName := 'DatabaseName'; SQL1.SQL.Add('select * from bybk0300 where'); SQL1.SQL.Add(' BK3BKNR=' + BKNR); SQL1.SQL.Add(' and BK3STOR=' + STOR); SQL1.SQL.Add(' and BK3POSN=' + POSN); SQL1.SQL.Add(' and BK3TBER=''' + TBER + ''''); SQL1.SQL.Add(' and BK3WJHR=''' + WJHR + ''''); SQL1.Open; TS.Clear; while not SQL1.Eof do begin TS.Add(SQL1.FieldByName('BK3TEXT').AsString); SQL1.Next; end; RESULT := TS; finally SQL1.Free; end; finally TS.Free; end; end; |
Hallo rossmann,
danke für den Tip. Hat wunderbar funktioniert. Ich weiss noch nicht, was ich gestern anders gemacht habe, aber bei dem
Code:
hat es bei mir gestern unhandled exceptions geregnet. Naja, jetzt klappt's. Muss gestern doch irgendwie Mist gemacht haben... :oops:
SQL1 := TQuery.Create(self);
:D Matthias |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:22 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 by Thomas Breitkreuz