AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Daten variabel in DB speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Daten variabel in DB speichern

Ein Thema von Balu der Bär · begonnen am 4. Sep 2009 · letzter Beitrag vom 5. Sep 2009
Antwort Antwort
Balu der Bär
(Gast)

n/a Beiträge
 
#1

Daten variabel in DB speichern

  Alt 4. Sep 2009, 17:43
Datenbank: Firebird • Version: aktuelle • Zugriff über: ZEOS
Moinsen,

mittels folgender Prozedur speichere ich Daten in eine Datenbank:
Delphi-Quellcode:
SQL.Text := 'INSERT INTO TABELLE1 (XYZ_NAME) VALUES (:data);';
ParamByName('data').AsString := data;
ExecSQL;
Funktionsaufruf dann SchreibeDaten('test223445'); Und die Daten werden erfolgreich in Tabelle1 im Feld XYZ_NAME abgespeichert.

Jetzt möchte ich diese Funktion variabel gestalten, also beim Funktionsaufruf die Tabelle und das Feld mit angeben. Praktisch gesehen:
Delphi-Quellcode:
SQL.Text := 'INSERT INTO :table (:field) VALUES (:data);';
ParamByName('table').AsString := table;
ParamByName('field').AsString := field;
ParamByName('data').AsString := data;
ExecSQL;
Funktionsaufruf ist dann: SchreibeDaten('TABELLE1', 'XYZ_NAME', 'test223445'); Klappt leider nicht, was mache ich falsch?

Danke Euch
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EZSQLException mit der Meldung 'SQL Error: Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 13 ?. Error Code: -104. Invalid token The SQL: INSERT INTO ? (?) VALUES (?);; ' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
//Edit: Kann nicht formatieren...
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Daten variabel in DB speichern

  Alt 4. Sep 2009, 17:48
Parameter kann man nur für Werte einsetzen, nicht für Entitätsnamen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Daten variabel in DB speichern

  Alt 4. Sep 2009, 17:56
Man könnte aber die Abfrage dynamisch in einem execute Block oder einer SP zusammenbauen.
Markus Kinzler
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Daten variabel in DB speichern

  Alt 4. Sep 2009, 18:01
oder einfach:
Delphi-Quellcode:
procedure SchreibeDaten(ATable, AField, AValue:string);
begin
  SQL.Text :=Format('INSERT INTO %s (%s) values(%s)',[ATable,AField,AValue]);
  ExecSQL;
end;
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: Daten variabel in DB speichern

  Alt 4. Sep 2009, 18:15
NEIN! Daten packt man grundsätzlich nur über Parameter in ein SQL-Statement, alles andere ist Wahnsinn. Tabellen- und Spaltennamen, die nicht der Kontrolle des Nutzers unterliegen, kann man natürlich so reinsetzen, aber niemals Daten.
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Daten variabel in DB speichern

  Alt 4. Sep 2009, 18:23
Zitat von Dax:
NEIN! Daten packt man grundsätzlich nur über Parameter in ein SQL-Statement, alles andere ist Wahnsinn. Tabellen- und Spaltennamen, die nicht der Kontrolle des Nutzers unterliegen, kann man natürlich so reinsetzen, aber niemals Daten.
Nur weil ich schreibfaul bin.
Dann halt so:
Delphi-Quellcode:
procedure SchreibeDaten(ATable, AField, AValue:string);
begin
  SQL.Text :=Format('INSERT INTO %s (%s) values(:data)',[ATable,AField]);
  ParamByName('data').AsString:=AValue;
  ExecSQL;
end;
[edit=mkinzler]Tag gefixt Mfg, mkinzler[/edit]
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#7

Re: Daten variabel in DB speichern

  Alt 5. Sep 2009, 07:03
Ich bedanke mich recht herzlich.
  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 04:48 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