Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ungüliger Feldname (https://www.delphipraxis.net/52068-ungueliger-feldname.html)

scuby 23. Aug 2005 12:41

Datenbank: Delphidatenbank • Zugriff über: SQL

Ungüliger Feldname
 
Delphi-Quellcode:
procedure TForm5.Button2Click(Sender: TObject);
var s,t : string;
begin
s := 'select Name,Vorname,Gebdat,Straße,hnr,plz,ort,tel,fahrschule from teilnehmer';
query1.close;
Query1.Sql.Text := s;
Query1.Active:=true;

t:= 'INSERT INTO teilnehmer (name, vorname, gebdat,straße,hnr,plz,ort,tel,fahrschule) VALUES ('''' + label3.caption, '''' + label5.caption, '''' + label7.caption, '''' + label9.caption, '''' + label10.caption, '''' + labl11.caption, '''' + label12.caption, '''' + label14.caption, '''' + label16.caption)';
showmessage(t);
query1.close;
Query1.Sql.Clear;
Query1.Sql.Add(t);
Query1.ExecSQL;
Query1.Active:=true;


Form4.Edit1.Text := '';
Form4.Edit2.Text := '';
Form4.Edit3.Text := '';
Form4.Edit4.Text := '';
Form4.Edit5.Text := '';
Form4.Edit6.Text := '';
Form4.Edit7.Text := '';
Form4.Edit8.Text := '';
Form4.Edit9.Text := '';
end;
Wenn ich dieses ausführe dann kommt immer die Fehlermeldung 'Ungültiger Feldname caption'

Ändere ich den Quellode auf folgendes
Delphi-Quellcode:
t:= 'INSERT INTO teilnehmer (name) VALUES (''test'')';
showmessage(t);
query1.close;
Query1.Sql.Clear;
Query1.Sql.Add(t);
Query1.ExecSQL;
Query1.Active:=true;
erscheint folgende Meldung: 'ehler bei Erstellen des Coursorhandle'

Ich würde mich freuen, wenn ihr mir helfen könntet den oberen Quellcode ohne Fehler zum laufen zu bringen.

MFG
Scuby

[edit=sakura] Titel angepasst und Leerzeichen für den Code verschenkt :) Mfg, sakura[/edit]

Duke_2004 23. Aug 2005 13:27

Re: Ungüliger Feldname
 
Delphi-Quellcode:
t:= 'INSERT INTO teilnehmer (name, vorname, gebdat,straße,hnr,plz,ort,tel,fahrschule) VALUES ('+#39+ label3.caption+#39+','+#39+label5.caption+#39+','+#39+label7.caption+#39+','+#39+ label9.caption+#39+','+#39+label10.caption+#39+','+#39+labl11.caption+#39+','+#39+
label12.caption+#39+','+#39+ label14.caption+#39+','+#39+ label16.caption+#39+')';

So müsste es klappen... ;-)

scuby 23. Aug 2005 13:53

Re: Ungüliger Feldname
 
Habe den Quellcode un so geändert wie vorgeschlagen:

Delphi-Quellcode:
procedure TForm5.Button2Click(Sender: TObject);
var s,t : string;
begin
s := 'select Name,Vorname,Gebdat,Straße,hnr,plz,ort,tel,fahrschule from teilnehmer';
query1.close;
Query1.Sql.Text := s;
Query1.Active:=true;

t:= 'INSERT INTO teilnehmer (name, vorname, gebdat,straße,hnr,plz,ort,tel,fahrschule) VALUES ('+#39+ label3.caption+#39+','+#39+label5.caption+#39+','+#39+label7.caption+#39+','+#39+ label9.caption+#39+','+#39+label10.caption+#39+','+#39+label11.caption+#39+','+#39+ 
label12.caption+#39+','+#39+ label14.caption+#39+','+#39+ label16.caption+#39+')';
showmessage(t);
query1.close;
Query1.Sql.Clear;
Query1.Sql.Add(t);
Query1.ExecSQL;
Query1.Active:=true;
Allerdings habe ich nun noch immer folgende Fehlermeldung:

Fehler beim Erstellen des Coursor-Handle.

Scuby

[edit=Sharky]Delphi-Tags angepasst. Mfg, Sharky[/edit]

Bernhard Geyer 23. Aug 2005 14:47

Re: Ungüliger Feldname
 
Der Fehler ist
Delphi-Quellcode:
Query1.Active:=true;
Eine Query die ein Insert/Update/Delete ausführt hat keine Ergebnismenge.
Und mit Query1.Active würdest Du eine anfordern/erwarten. Ist nur bei Select-Anweisungen sinnvoll/nötig.
Mit
Delphi-Quellcode:
Query1.ExecSQL;
wird ja schon das Insert ausgeführt.

shmia 23. Aug 2005 15:02

Re: Ungüliger Feldname
 
Zitat:

Zitat von Duke_2004
Delphi-Quellcode:
t:= 'INSERT INTO teilnehmer (name, vorname, gebdat,straße,hnr,plz,ort,tel,fahrschule) VALUES ('+#39+ label3.caption+#39+','+#39+label5.caption+#39+','+#39+label7.caption+#39+','+#39+ label9.caption+#39+','+#39+label10.caption+#39+','+#39+labl11.caption+#39+','+#39+
label12.caption+#39+','+#39+ label14.caption+#39+','+#39+ label16.caption+#39+')';

Das ist Pfui!
Stell dir vor, was passiert, wenn in einer Caption der Text "Müller's Kuh" stehen würde.
Wenn man schon keine Parameter verwendet, dann zumindest QuotedStr:
Delphi-Quellcode:
t:= 'INSERT INTO teilnehmer (name, vorname, gebdat,straße,hnr,plz,ort,tel,fahrschule) VALUES ('+ QuotedStr(label3.caption)+','+QuotedStr(label5.caption)+

scuby 24. Aug 2005 00:19

Re: Ungüliger Feldname
 
Vielen Dank für eure Hilfe, konnte mein Problem lösen und nun läuft der Teil auch einwandfrei.
mal gucken was morgen so alles kommt, wenn ich weiter mache!!

Scuby


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz