Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Query dynamisch erzeugen? (https://www.delphipraxis.net/4069-query-dynamisch-erzeugen.html)

mjenke 14. Apr 2003 08:24


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:
Methodenname(Query: TQuery; Restliche Parameter);
Ich denke, der Konstruktor meiner Klasse sollte eine interne Query-Komponente erzeugen, aber das bekomme ich nicht hin.
Wäre klasse, wenn mir jemand auf die Sprünge helfen könnte...

:P
Matthias

rossmann 14. Apr 2003 08:43

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;

mjenke 14. Apr 2003 10:20

Hallo rossmann,

danke für den Tip. Hat wunderbar funktioniert. Ich weiss noch nicht, was ich gestern anders gemacht habe, aber bei dem

Code:
SQL1 := TQuery.Create(self);
hat es bei mir gestern unhandled exceptions geregnet. Naja, jetzt klappt's. Muss gestern doch irgendwie Mist gemacht haben... :oops:

: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