![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: ZEOSDBO-6.6.1_beta
Zquery AUTO_INCREMENT problem, wiedermal
Ich benutzt MySQL 5 und die neue Version der Zeos-Kombo.
Also, ich hab mit folgenden Code eine Table erzeugt:
Delphi-Quellcode:
in der Table sollen Adressdaten gespeichert werden.
.
. . with ZQuery1 do begin SQL.Clear; SQL.Add('create table `adressbuch`'); SQL.Add('('); SQL.Add(' `id` Integer unsigned Not Null Auto_Increment,'); SQL.Add(' `vorname` char(30),'); SQL.Add(' `name` char(30),'); SQL.Add(' `adresse` char(30),'); SQL.Add(' `wohnort` char(10),'); SQL.Add(' `plz` Char(10),'); SQL.Add(' primary key(`id`)'); SQL.Add(')'); execsql; end; . . . Hinzufügen von neuen Daten tue ich mit folgendem Code:
Delphi-Quellcode:
Wenn ich das nun ausführe kommt aber folgender Fehler:
.
. . ZQuery1.SQL.Text:='INSERT INTO `adressbuch` '+ '(`id`, `vorname`, `name`, `adresse`, `wohnort`, `plz`)'+ ' VALUES '+ '('''', '''+edVorname.Text+''', '''+edNachName.Text+ ''', '''+edAdresse.Text+''', '''+edWohnort.Text+ ''', '''+edPLZ.Text+''');'; ZQuery1.ExecSql; . . . "SQL Error: Incorrect integer value: "for column 'id' at row 1." Was mach ich falsch? ;) |
Re: Zquery AUTO_INCREMENT problem, wiedermal
Autoicrement-Felder dürfen bei INSERT-Anweisungen nicht angegeben werden, da sie von der Datenbank vergeben werden!!
Delphi-Quellcode:
Ich habe hier auch gleich zwei weitere Fehler korrigiert.
ZQuery1.SQL.Text:='INSERT INTO adressbuch '+
'(vorname, name, adresse, wohnort, plz)'+ ' VALUES('+QuotedStr(edVorname.Text) + ','+QuotedStr(edNachName.Text)+ ','+ ... 1.) diese Accents (`) haben bei den Feldnamen nichts verloren !! SQL-92 Standard wären doppelte Anführungszeichen (") 2.) QuoteStr() verwendet anstelle der Hochkomma-Orgie |
Re: Zquery AUTO_INCREMENT problem, wiedermal
thx, funzt nun ;)
|
Re: Zquery AUTO_INCREMENT problem, wiedermal
Zitat:
evntuell solltest Du auch überlegen mit Parametern zu arbeiten. Dann musst Du dich nicht darum kümmern das die Daten in der richtigen Form an die Datenbank übergeben werden. Gerade bei Datumswerten ist das recht nützlich.
Delphi-Quellcode:
with ZQuery1 do
begin SQL.Text := 'INSERT INTO adressbuch (vorname, name, adresse, wohnort, plz)' + ' VALUES (:vorname,:name,:adresse,:wohnort,:plz)'; ParamByName('vorname').AsString := edVorname.Text; ParamByName('name').AsString := edNachName.Text; ParamByName('adresse').AsString := edAdresse.Text; ParamByName('wohnort').AsString := edWohnort.Text; ParamByName('plz').AsString := edPlz.Text; ExecSQL; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 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