![]() |
Datenbank: Interbase • Version: 6 • Zugriff über: dbexpress
Token unknown
Hallo,
ich habe ein kleines Problem mit einer Interbase Datenbank. Wenn ich über Tsqlquery per Insert einen neuen Datensatz einfügen will, sagt er mir immer "Datenbank-Server-Fehler: Token unknown - line 1, char 15 aufgetreten". Was mache ich falsch? Hier ist mein Quellcode:
Delphi-Quellcode:
Ich hoffe, das mir jemand helfen kann.
procedure TForm3.Button1Click(Sender: TObject);
var q: WideString; begin q:= 'Insert into aeg.Schueler (id, Firstname, Lastname, Birthdate, Klasse) Values('+edit1.Text+','+edit2.Text+','+edit3.Text+','+edit4.Text+','+edit5.Text+')'; form1.SQLQuery1.SQL.Clear; form1.SQLQuery1.SQL.Add(q); form1.SQLQuery1.ExecSQL; end; |
Re: Token unknown
Hallo.
Delphi-Quellcode:
Der direkte Zugriff von Form3 auf Form1.SQLQuery1 ist nicht die beste Lösung. Deine Komponenten tragen alle noch die von der IDE vorgeschlagenen Namen. Die Komposition des INSERT-Statements durch String concatenation ist nicht sicher - bisweilen fehlen dann Quotes. Die property SQL hat eine Eigenschaft Text, was oft ein SQL.Clear überflüssig macht. Eventuell solltest du dir mal die Komponente SQLDataset anschauen. Fehlerbehandlung ist noch keine sichtbar. Das reicht erstmal.
procedure TForm3.Button1Click(Sender: TObject);
begin with Form1.SQLQuery1 do begin SQL.Text := 'Insert into Schueler (id, Firstname, Lastname, Birthdate, Klasse) ' + 'Values(:id, :firstname, :lastname, :birthdate, :klasse)' ; Params.ParamByName('id').AsInteger := StrToInt(Edit1.Text); Params.ParamByName('schueler').AsString := Edit2.Text; // ... ExecSQL; end; end; Gute Nacht marabu |
Re: Token unknown
Danke für die Antwort. Bei deiner Lösung erhalte ich aber trotzdem den gleichen Fehler. Na egal. Ich hab es jetzt mittels SqlDataset gemacht und es funktioniert super. Danke für den Tipp.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 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-2025 by Thomas Breitkreuz