AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken fehler bei Übergabe des feldbezeichners im statement
Thema durchsuchen
Ansicht
Themen-Optionen

fehler bei Übergabe des feldbezeichners im statement

Ein Thema von khh · begonnen am 6. Dez 2008 · letzter Beitrag vom 6. Dez 2008
Antwort Antwort
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#1

fehler bei Übergabe des feldbezeichners im statement

  Alt 6. Dez 2008, 11:52
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
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
Karl-Heinz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: fehler bei Übergabe des feldbezeichners im statement

  Alt 6. Dez 2008, 12:03
Es werden leider keine Parameter für Tabellen oder Feldbezeichner unterstützt.
Markus Kinzler
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#3

Re: fehler bei Übergabe des feldbezeichners im statement

  Alt 6. Dez 2008, 12:05
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
Karl-Heinz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: fehler bei Übergabe des feldbezeichners im statement

  Alt 6. Dez 2008, 12:08
Oder das Statement in einer SP dynamsich zusammenbauen
Markus Kinzler
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#5

Re: fehler bei Übergabe des feldbezeichners im statement

  Alt 6. Dez 2008, 12:16
Zitat von mkinzler:
Oder das Statement in einer SP dynamsich zusammenbauen
SP??
Karl-Heinz
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#6

Re: fehler bei Übergabe des feldbezeichners im statement

  Alt 6. Dez 2008, 12:19
meinst du so?
update' + Ftabellenname+ ' set' + FFeldname + '= 1 ....


stehn dann keine Anführungszeichen drin wenn FTabellename ein String ist ?
Karl-Heinz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: fehler bei Übergabe des feldbezeichners im statement

  Alt 6. Dez 2008, 12:36
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.
Markus Kinzler
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#8

Re: fehler bei Übergabe des feldbezeichners im statement

  Alt 6. Dez 2008, 12:56
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
Karl-Heinz
  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 13:16 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