AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi SQL Query Name über Prozedur Variable übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Query Name über Prozedur Variable übergeben

Ein Thema von toyoman · begonnen am 19. Sep 2007 · letzter Beitrag vom 19. Sep 2007
Antwort Antwort
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#1

SQL Query Name über Prozedur Variable übergeben

  Alt 19. Sep 2007, 13:54
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:
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;
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.

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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

Re: SQL Query Name über Prozedur Variable übergeben

  Alt 19. Sep 2007, 14:00
TQuery(FindComponent(queryname)).SQL.Text := 'SELECT * FROM Tabelle'; Sollte so funktionieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: SQL Query Name über Prozedur Variable übergeben

  Alt 19. Sep 2007, 14:07
Hey

habe ich so angepasst:

Delphi-Quellcode:
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;
Funktioniert aber leider nicht, Fehlermeldung: Error 616: Undeclared identifier: 'FindComponent'

Was fehlt mir noch?


Zitat von DeddyH:
TQuery(FindComponent(queryname)).SQL.Text := 'SELECT * FROM Tabelle';
Sollte so funktionieren.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: SQL Query Name über Prozedur Variable übergeben

  Alt 19. Sep 2007, 14:16
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

procedure queryfuellen(query: TQuery; dateiname, tabellenname:string); übergibst also die zu "füllende" Query direkt


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#5

Re: SQL Query Name über Prozedur Variable übergeben

  Alt 19. Sep 2007, 14:19
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:
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;
//Wobei Heiko natürlich Recht hat, das wär simpler und weniger fehleranfällig.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#6

Re: SQL Query Name über Prozedur Variable übergeben

  Alt 19. Sep 2007, 14:19
Du hast natürlich recht, das ist genau das was ich gesucht habe!!!!

Vielen Dank!

Thema erledigt, danke allen Lesern

Zitat von hoika:
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

procedure queryfuellen(query: TQuery; dateiname, tabellenname:string); übergibst also die zu "füllende" Query direkt


Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz