Entwickler-Ecke

Datenbanken - "Parameter nicht gefunden" Sql.LoadFromFile --> ParamByName


inkoknito - Mo 07.09.09 17:43
Titel: "Parameter nicht gefunden" Sql.LoadFromFile --> ParamByName
Hallo Leute,

habe ein Problem für das ich einfach keine Lösung finden kann. Habe eine Query, die ein normales Update auf meine DB ausführen soll. Die Query ist mit der richtigen DB-Komponente verbunden und die DB ist aktiv.

Wenn ich den Update-Befehl direkt in die Query-Eigenschaft "SQL" im Objektinspektor eintrage, dann funktioniert auch alles super. Lagere ich den Update-Befehl in eine Text-Datei (copy - paste) und lade diese in die Query Komponente (SQL ist vorher leer), dann bekomme ich den Fehler "Query_UPDATE: Parameter UPDATE_ID nicht gefunden".



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
...
  begin
      Query_S.first;
      for i:=0 to QUERY_S.RecordCount-1 do
      begin
        Query_UPDATE.SQL.LoadFromFile( verz+'\sql\update_BESTAETIGT.sql');
        Query_UPDATE.ParamByName('UPDATE_ID').AsString := Query_S.FieldByName('ID').AsString;
        Query_UPDATE.ExecSQL;
        Query_S.Next;
      end;
    end;

...


Update-Befehl:


SQL-Anweisung
1:
2:
3:
update datenbank..TABELLE
set FELD = '1'
where ID = :UPDATE_ID


ParamCheck ist True.

Hat jemand eine Idee??

Vielen Dank schonmal!

Gruß, Jana


Xentar - Mo 07.09.09 17:49

Du könntest dir spaßeshalber mal SQL.Text ausgeben lassen.


inkoknito - Di 08.09.09 09:47

Hallo Xentar,


Delphi-Quelltext
1:
2:
3:
        Query_UPDATE.SQL.LoadFromFile( verz+'\sql\update_BESTAETIGT.sql');
        ShowMessage(Query_UPDATE.SQL.Text);
        Query_UPDATE.ParamByName('UPDATE_ID').AsString := Query_S.FieldByName('ID').AsString;


ShowMessage gibt mir genau den Text, der in der txt steht. Bei der Zuweisung danach bekomme ich dann den Fehler.


inkoknito - Di 08.09.09 10:21

Hat sich erledigt.

Habe in der Query die ' durch " ersetzt. Danach bekam ich dann immernoch die Meldung, dass der Parameter nicht gefunden wurde. Ich hab dann im Quelltext anstelle LoadFromFile per SQL.ADD das Update (copy & paste) in die Query eingetragen. Dann hat's funktioniert. Dann hab ich wieder per Copy & paste die Zeilen in eine Txt kopiert und diese lade ich nun wieder per Sql.LoadFromFile. Jetzt klappt alles. Verstehe allerdings nicht wirklich warum. Trippfehler können es nicht gewesen sein. Bug? Naja, Trotzdem vielen Dank!