Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi INSERT INTO & MS Access (https://www.delphipraxis.net/92102-insert-into-ms-access.html)

Moony 14. Mai 2007 15:27

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:
 
SQL := 'INSERT INTO myTable (Field1,Field2,Field3,...Field28) VALUES (Wert1, Wert2, Wert3, ..., Wert28)'
if myDB.Connected then
begin
  myCommand.CommandText := SQL;
  myCommand.Execute;
end;
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.

Ich hoffe ihr könnt mir helfen..... :wall:

Thanks im Voraus. Gruß, Moony

mkinzler 14. Mai 2007 15:34

Re: INSERT INTO & MS Access
 
Stringwerte müssen gequoted sein.

Moony 14. Mai 2007 15:37

Re: INSERT INTO & MS Access
 
Die sind ja mit Hochkommata. Der Befehl würde dann so aussehen:

Delphi-Quellcode:
SQL := 'INSERT INTO myTable (Field1,Field2,Field3,...Field28) VALUES ('''', '''', '''', ..., Wert28)'
if myDB.Connected then
begin
  myCommand.CommandText := SQL;
  myCommand.Execute;
end;
Ich habe gerade festgestellt, dass ich bis 6 Werte einfügen kann, danach jedoch diese Fehlermeldung kommt.

mkinzler 14. Mai 2007 15:38

Re: INSERT INTO & MS Access
 
Was für ein Fehler wird angezeigt?

Moony 14. Mai 2007 15:39

Re: INSERT INTO & MS Access
 
Syntaxfehler in der INSERT INTO-ANweisung

mkinzler 14. Mai 2007 15:40

Re: INSERT INTO & MS Access
 
Zeig mal einen Screenshot. Bzw. wie sieht der erzeugte String aus?

Moony 14. Mai 2007 15:44

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.

Moony 15. Mai 2007 10:26

Re: INSERT INTO & MS Access
 
Hmmm.....kann mir denn da keiner helfen??? :cry:

marabu 15. Mai 2007 10:52

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

hoika 15. Mai 2007 11:03

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 22:24 Uhr.
Seite 1 von 4  1 23     Letzte »    

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