Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme beim Laden von SQL-Befehlen aus einer Datei (https://www.delphipraxis.net/23644-probleme-beim-laden-von-sql-befehlen-aus-einer-datei.html)

-tobi- 7. Jun 2004 09:28


Probleme beim Laden von SQL-Befehlen aus einer Datei
 
Hallo,

ich habe ein Problem mit der Funktion Query.SQL.LoadFromFile.

Ich möchte den SQL-Befehl aus einer txt-Datei laden. In diesem sollten aber Delphi-Variabeln als Abfrage-Kriterium berücksichtigt werden.

Bsp:
[sql]'delete from TTabellen where Tabellenname = ' + Variable + ' and Projektnummer = ' + Variable[sql]

Wie kann ich die Anweisungen dynamisch halten?

Danke im Voraus

Gruß
tobi

Stevie 7. Jun 2004 09:45

Re: Probleme beim Laden von SQL-Befehlen aus einer Datei
 
SQL-Code:
delete from TTabellen where Tabellenname = :Tabellenname and Projektnummer = :Projektnummer
Mit TQuery.ParamByName greifst du auf die einzelnen Parameter zu.

-tobi- 7. Jun 2004 09:53

Re: Probleme beim Laden von SQL-Befehlen aus einer Datei
 
Hallo,

ich arbeite mit der TADOQuery und dort gibt es den Befehl 'ParamByName' nicht.

Gruß
tobi

Stevie 7. Jun 2004 09:59

Re: Probleme beim Laden von SQL-Befehlen aus einer Datei
 
Ok, wusste ich nicht, also so:
Delphi-Quellcode:
Query.Parameters.ParamByName(Parametername)
Wenn ich micht recht erinnere, dann musst du nach dem Setzen des SQL-Statements noch Prepared auf True setzen, dann werden die Paramter aus dem SQL in die Paramaters-Eigenschaft eingetragen, aber das weiß ich wie gesagt, nicht mehr so genau.

Gollum 7. Jun 2004 10:01

Re: Probleme beim Laden von SQL-Befehlen aus einer Datei
 
Hallo,

so sollte es gehen:

Delphi-Quellcode:
with ADOQuery1 do
begin
  SQL.LoadFromFile('xxx.sql');
  with Parameters do
  begin
    ParamValues['Tabellenname']:='MeineTabelle';
    ParamValues['Projektnummer']:=MyPrjektNr;
  end; // with
  ExecSQL;
end; // with

Sharky 7. Jun 2004 10:22

Re: Probleme beim Laden von SQL-Befehlen aus einer Datei
 
Zitat:

Zitat von Stevie
SQL-Code:
delete from TTabellen where Tabellenname = :Tabellenname and Projektnummer = :Projektnummer
...

Hai,

wenn ich mich richtig entsinne ist das übergeben von Tabellennamen via Parameter nicht möglich.

Stevie 7. Jun 2004 10:26

Re: Probleme beim Laden von SQL-Befehlen aus einer Datei
 
Zitat:

Zitat von Sharky
wenn ich mich richtig entsinne ist das übergeben von Tabellennamen via Parameter nicht möglich.

Ich denke, dass Tabellenname hier eine Spalte in der Tabelle ist und kein Tabellenname an sich, sonst müsste es ja heißen:
SQL-Code:
delete from :Tabellenname where...
was natürlich nicht geht!

-tobi- 7. Jun 2004 10:37

Re: Probleme beim Laden von SQL-Befehlen aus einer Datei
 
Hallo

Danke für eure Antworten.

Ich werde die SQL-Befehle jetzt aber doch nicht auslagern, da es bei ca. 100 Befehlen für mich zu viel Arbeit ist.

Gruß
tobi

Jelly 7. Jun 2004 13:25

Re: Probleme beim Laden von SQL-Befehlen aus einer Datei
 
Zitat:

Zitat von Sharky
wenn ich mich richtig entsinne ist das übergeben von Tabellennamen via Parameter nicht möglich.

Das stimmt. Mittels der RxQuery Komponente aus der RxLibrary geht das allerdings, da es nebem ParamByName auch noch MacroByName gibt. Platzhalter hierfür sind aber nicht ":" sondern "%".

Wenn ich mich recht entsinne gibts die RxLib alleine nicht mehr, glaube aber daß die im Jedi-Projekt eingebunden wurde.

Gruß,
Tom


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 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