![]() |
Datenbank: MS Access • Zugriff über: TADOConnection / TADOCommand
INSERT INTO & MS Access
Hallo zusammen,
ich drehe glaube ich hier gleich durch. Habe das folgende Problem: Ich versuche einen INSERT-Befehl auszuführen, aber dieser sagt mir ständig, dass dort ein Syntaxfehler besteht. Das kann aber irgendwie nicht sein, denn wenn ich diese Abfrage direkt bei MS Access hineinkopiere und ausführe funktioniert das einwandfrei. Die Connection ist richtig gesetzt und die Verbindung steht auch. Ein paar Zeilen zuvor funktionierte ein DELETE-Befehl einwandfrei und dieser nicht. Der Befehl ist ganz simple aufgebaut:
Delphi-Quellcode:
Bei den Werten kann es natürlich auch vorkommen, dass es Leerstrings sind. In der DB sind alle Felder als Text definiert und können Leerzeichen enthalten.SQL := 'INSERT INTO myTable (Field1,Field2,Field3,...Field28) VALUES (Wert1, Wert2, Wert3, ..., Wert28)' if myDB.Connected then begin myCommand.CommandText := SQL; myCommand.Execute; end; Ich hoffe ihr könnt mir helfen..... :wall: Thanks im Voraus. Gruß, Moony |
Re: INSERT INTO & MS Access
Stringwerte müssen gequoted sein.
|
Re: INSERT INTO & MS Access
Die sind ja mit Hochkommata. Der Befehl würde dann so aussehen:
Delphi-Quellcode:
Ich habe gerade festgestellt, dass ich bis 6 Werte einfügen kann, danach jedoch diese Fehlermeldung kommt.
SQL := 'INSERT INTO myTable (Field1,Field2,Field3,...Field28) VALUES ('''', '''', '''', ..., Wert28)'
if myDB.Connected then begin myCommand.CommandText := SQL; myCommand.Execute; end; |
Re: INSERT INTO & MS Access
Was für ein Fehler wird angezeigt?
|
Re: INSERT INTO & MS Access
Syntaxfehler in der INSERT INTO-ANweisung
|
Re: INSERT INTO & MS Access
Zeig mal einen Screenshot. Bzw. wie sieht der erzeugte String aus?
|
Re: INSERT INTO & MS Access
Als String steht drin:
INSERT INTO myTable (Feld1,Feld2,Feld3,Feld4,Feld5,Feld6,Feld7) VALUES ('','','','','','','') Die Fehlermeldung wird genauso angezeigt wie ich es geschrieben habe. Das gibt zumindest die Message von E: Exception -> E.Message aus. |
Re: INSERT INTO & MS Access
Hmmm.....kann mir denn da keiner helfen??? :cry:
|
Re: INSERT INTO & MS Access
Hallo,
die Feldnamen hast du wohl kaschiert. Wenn Feld7 gegen die Regeln für Feldnamen verstößt, dann musst du den Feldnamen in eckige Klammern setzen. Wenn alle Felder in ihrer Katalog-Reihenfolge befüllt werden, dann kannst du die Angabe der Feldnamen weglassen. Wenn du einzelne Felder nicht befüllen möchtest, dann kannst du sie einfach auslassen und sie werden auf NULL gesetzt. Verschiebe zum Test mal Feld7 an eine andere Stelle in deinem INSERT-Statement. Grüße vom marabu |
Re: INSERT INTO & MS Access
Hallo,
benutze Parameter (einfach mal hier suchen), Oder zeig zumindestens mal die komplette Query. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:55 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