![]() |
SQL Query Name über Prozedur Variable übergeben
SQL Query Name über Prozedur Variable übergeben:
Hallo, weiss nicht wie ich nach einer Lösung für dieses Problem suchen soll. Ich möchte gern bei der folgenden Prozedur den Query Namen dynamisch übergeben können:
Delphi-Quellcode:
Die Variable "queryname" soll dabei zum Beispiel die eigentliche SQLQuery "QRTest" sein. Somit bräuchte ich nur noch eine Prozedur um alle meine Querys darüber abfüllen zu können.
procedure queryfuellen(queryname,dateiname,tabellenname:string);
begin // SQL Statement einlesen (SQL Strings) if fileexists(prgpath+dateiname) then begin queryname.SQL.LoadFromFile(prgpath+dateiname); end else begin showmessage(tabellenname+': SQL Datei '+queryname+', Datei: '+ prgpath+dateiname+' nicht gefunden!'); end; end; Nur, als String kann ich den Namen der Query ja nicht übergeben, wie kann ich das machen und geht das überhaupt? Danke schon mal im voraus für Tips. |
Re: SQL Query Name über Prozedur Variable übergeben
Delphi-Quellcode:
Sollte so funktionieren.
TQuery(FindComponent(queryname)).SQL.Text := 'SELECT * FROM Tabelle';
|
Re: SQL Query Name über Prozedur Variable übergeben
Hey
habe ich so angepasst:
Delphi-Quellcode:
Funktioniert aber leider nicht, Fehlermeldung: Error 616: Undeclared identifier: 'FindComponent'
procedure queryfuellen(queryname,dateiname,tabellenname:string);
begin // SQL Statement einlesen (SQL Strings) if fileexists(prgpath+dateiname) then begin TSQLQuery(FindComponent(queryname).SQL.LoadFromFile(prgpath+dateiname); //TQuery(FindComponent(queryname)).SQL.Text end else begin showmessage(tabellenname+': SQL Datei '+queryname+', Datei: '+ prgpath+dateiname+' nicht gefunden!'); end; end; Was fehlt mir noch? Zitat:
|
Re: SQL Query Name über Prozedur Variable übergeben
Hallo,
FindComponent ist eine Methode von TForm. Du musst also das Form, wo doe Query drauf ist, mit übergeben. Aber warum machst du nivcjht folgendes
Delphi-Quellcode:
übergibst also die zu "füllende" Query direkt
procedure queryfuellen(query: TQuery; dateiname, tabellenname:string);
Heiko |
Re: SQL Query Name über Prozedur Variable übergeben
Hallo,
ich habe nicht beachtet, dass es sich nicht um eine Klassenmethode handelt. Also müsstest Du das Formular, auf dem das Query liegt, als Parameter mit übergeben.
Delphi-Quellcode:
//Wobei Heiko natürlich Recht hat, das wär simpler und weniger fehleranfällig.
procedure queryfuellen(aForm: TForm;queryname,dateiname,tabellenname:string);
begin // SQL Statement einlesen (SQL Strings) if fileexists(prgpath+dateiname) then begin TSQLQuery(aForm.FindComponent(queryname)).SQL.LoadFromFile(prgpath+dateiname); //TQuery(FindComponent(queryname)).SQL.Text end else begin showmessage(tabellenname+': SQL Datei '+queryname+', Datei: '+ prgpath+dateiname+' nicht gefunden!'); end; end; |
Re: SQL Query Name über Prozedur Variable übergeben
Du hast natürlich recht, das ist genau das was ich gesucht habe!!!!
Vielen Dank! Thema erledigt, danke allen Lesern :-) Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 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