AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi INSERT INTO & MS Access
Thema durchsuchen
Ansicht
Themen-Optionen

INSERT INTO & MS Access

Ein Thema von Moony · begonnen am 14. Mai 2007 · letzter Beitrag vom 16. Mai 2007
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#1

INSERT INTO & MS Access

  Alt 14. Mai 2007, 16:27
Datenbank: MS Access • Zugriff über: TADOConnection / TADOCommand
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.....

Thanks im Voraus. Gruß, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: INSERT INTO & MS Access

  Alt 14. Mai 2007, 16:34
Stringwerte müssen gequoted sein.
Markus Kinzler
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#3

Re: INSERT INTO & MS Access

  Alt 14. Mai 2007, 16:37
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.
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: INSERT INTO & MS Access

  Alt 14. Mai 2007, 16:38
Was für ein Fehler wird angezeigt?
Markus Kinzler
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#5

Re: INSERT INTO & MS Access

  Alt 14. Mai 2007, 16:39
Syntaxfehler in der INSERT INTO-ANweisung
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: INSERT INTO & MS Access

  Alt 14. Mai 2007, 16:40
Zeig mal einen Screenshot. Bzw. wie sieht der erzeugte String aus?
Markus Kinzler
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#7

Re: INSERT INTO & MS Access

  Alt 14. Mai 2007, 16:44
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.
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#8

Re: INSERT INTO & MS Access

  Alt 15. Mai 2007, 11:26
Hmmm.....kann mir denn da keiner helfen???
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: INSERT INTO & MS Access

  Alt 15. Mai 2007, 11:52
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
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: INSERT INTO & MS Access

  Alt 15. Mai 2007, 12:03
Hallo,

benutze Parameter (einfach mal hier suchen),

Oder zeig zumindestens mal die komplette Query.


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr.
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