Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   fehler bei Übergabe des feldbezeichners im statement (https://www.delphipraxis.net/125456-fehler-bei-uebergabe-des-feldbezeichners-im-statement.html)

khh 6. Dez 2008 11:52

Datenbank: firebird • Version: 2.1 • Zugriff über: zeos

fehler bei Übergabe des feldbezeichners im statement
 
hallo zusammen,
ich möchte in einem Statement den Feldbezeichner aus einer Variable übergeben.

funktionier aber so leider nicht:

FQuery1.SQL.add('update :tabelle set :feldname = 1 where :feldbezeichnung = :feldinhalt');
FQuery1.ParamByName('tabelle').AsString := FTabellenname;
FQuery1.ParamByName('feldbezeichnung').AsString := FFeldbezeichnung;
FQuery1.ParamByName('feldinhalt').AsString := FFeldinhalt;
FQuery1.ParamByName('feldname').AsString := FFeldname;
FQuery1.ExecSQL;

ich denke mir der Feldname steht im statement in Anführungszeichen, deshalb der Fehler :-(

Gruss Kh

mkinzler 6. Dez 2008 12:03

Re: fehler bei Übergabe des feldbezeichners im statement
 
Es werden leider keine Parameter für Tabellen oder Feldbezeichner unterstützt.

khh 6. Dez 2008 12:05

Re: fehler bei Übergabe des feldbezeichners im statement
 
Zitat:

Zitat von mkinzler
Es werden leider keine Parameter für Tabellen oder Feldbezeichner unterstützt.


mh das ist aber dumm,
hast du ne andere idee, wie man das umsetzen kann?

EDIT: muss ich die feldnamen wohl fest ins statement einbauen und anhand der übergebene paramenter dann unterscheiden :-8

mkinzler 6. Dez 2008 12:08

Re: fehler bei Übergabe des feldbezeichners im statement
 
Oder das Statement in einer SP dynamsich zusammenbauen

khh 6. Dez 2008 12:16

Re: fehler bei Übergabe des feldbezeichners im statement
 
Zitat:

Zitat von mkinzler
Oder das Statement in einer SP dynamsich zusammenbauen

SP??

khh 6. Dez 2008 12:19

Re: fehler bei Übergabe des feldbezeichners im statement
 
meinst du so?
update' + Ftabellenname+ ' set' + FFeldname + '= 1 ....


stehn dann keine Anführungszeichen drin wenn FTabellename ein String ist ?

mkinzler 6. Dez 2008 12:36

Re: fehler bei Übergabe des feldbezeichners im statement
 
SP: Stored Procedure
SET TERM ^ ;

SQL-Code:
CREATE OR ALTER PROCEDURE DYNUPDATE (
    tabellenname varchar(16),
    feldname varchar(16),
    wert varchar(10))
as
declare variable ssql char(128);
begin
   ssql = 'update ' || :Tabellenname || ' set ' || :Feldname || ' = ' || :Wert || ';';
  execute statement :ssql;
  suspend;
end^

SET TERM ; ^
In deinem Fall könnte man das auch clientseitig machen.

khh 6. Dez 2008 12:56

Re: fehler bei Übergabe des feldbezeichners im statement
 
Zitat:

Zitat von mkinzler
SP: Stored Procedure
SET TERM ^ ;

SQL-Code:
CREATE OR ALTER PROCEDURE DYNUPDATE (
    tabellenname varchar(16),
    feldname varchar(16),
    wert varchar(10))
as
declare variable ssql char(128);
begin
   ssql = 'update ' || :Tabellenname || ' set ' || :Feldname || ' = ' || :Wert || ';';
  execute statement :ssql;
  suspend;
end^

SET TERM ; ^
In deinem Fall könnte man das auch clientseitig machen.


ich danke dir


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