AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi fehlermeldung: Missing (;) at the and of sql statement
Thema durchsuchen
Ansicht
Themen-Optionen

fehlermeldung: Missing (;) at the and of sql statement

Ein Thema von vanilla · begonnen am 29. Mär 2007 · letzter Beitrag vom 30. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
vanilla

Registriert seit: 23. Mär 2007
44 Beiträge
 
Delphi 7 Professional
 
#1

fehlermeldung: Missing (;) at the and of sql statement

  Alt 29. Mär 2007, 16:05
Datenbank: access • Version: 2000 • Zugriff über: ado
hallo leute,

folgendes Problem:

ich habe folgende Funktion geschrieben (ganz egal was sie tut), neuesNAD ist vom typ string, wenn ich compilierre bekomme ich die fehlermeldung: Missing ( semikolon at the and of sql statement ??????
wo steckt der fehler?? hoffe, dass mir einer helfen kann.


Delphi-Quellcode:
if (neuesNAD <> 'Name') then
     begin

       try
       ADOQuery1.SQL.Text := ' INSERT INTO NAD ( NAD ) VALUES ( '+neuesNAD+' ) ON DUPLICATE KEY UPDATE ( ID = ID+1 ) ';
       ADOQuery1.Connection := self.ADOConnection1;
       ADOQuery1.Open;
       except
        showmessage('Fehler!');
       end;

     end;
[edit=Matze][delphi]-Tag geschlossen. Mfg, Matze[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: fehlermeldung: Missing (;) at the and of sql statement

  Alt 29. Mär 2007, 16:12
Laut Fehlermeldung tippe ich darauf, denn die sagt ja eigentlich schon alles:

Code:
 ADOQuery1.SQL.Text := ' INSERT INTO NAD ( NAD ) VALUES ( '+neuesNAD+' ) ON DUPLICATE KEY UPDATE ( ID = ID+1 );';
Vorletztes Semikolon.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: fehlermeldung: Missing (;) at the and of sql statement

  Alt 29. Mär 2007, 16:13
Die Fehlermeldung sagt doch schon alles. Bei deinem SQL-Statement fehlt das Semikolon am Ende.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
vanilla

Registriert seit: 23. Mär 2007
44 Beiträge
 
Delphi 7 Professional
 
#4

Re: fehlermeldung: Missing (;) at the and of sql statement

  Alt 29. Mär 2007, 16:18
hi

matze ich hab dein vorschlag ausprobiert und das problem ist trotzdem nicht gelöst
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: fehlermeldung: Missing (;) at the and of sql statement

  Alt 29. Mär 2007, 16:25
Hi,

kommt nun ein neuer Fehler oder immer noch der gleiche?
  Mit Zitat antworten Zitat
hoika

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

Re: fehlermeldung: Missing (;) at the and of sql statement

  Alt 29. Mär 2007, 16:33
Hallo,

bei Insert kommt kein Open, sondern ein ExecSQL hin.


Heiko
Heiko
  Mit Zitat antworten Zitat
vanilla

Registriert seit: 23. Mär 2007
44 Beiträge
 
Delphi 7 Professional
 
#7

Re: fehlermeldung: Missing (;) at the and of sql statement

  Alt 29. Mär 2007, 16:35
immernoch die gleiche..

hab jetzt auch ADOQuery1.Open; mit ADOQuery1.ExecSQL ; umgetauscht aber ändern tut sich nix...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: fehlermeldung: Missing (;) at the and of sql statement

  Alt 29. Mär 2007, 16:42
Versuch mal:
Delphi-Quellcode:
ADOQuery1.SQL.Text := ' INSERT INTO NAD ( NAD ) VALUES ( :neuesNAD ) ON DUPLICATE KEY UPDATE ( ID = ID+1 );';
ADOQuery1.Parameters.ParamByName('neuesNAD').Value := neuesNAD;
...
Markus Kinzler
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: fehlermeldung: Missing (;) at the and of sql statement

  Alt 29. Mär 2007, 18:38
Dieses "ON DUPLICATE KEY UPDATE (..." ist doch kein Standard SQL.
Was soll das denn bewirken ??
Wenn man einen Insert mit einem doppelten Key macht, gibt's halt eine Exception und die Datenbank verweigert das Einfügen.
Wenn man ein AutoInc-Feld als Primary Key hat, dann lässt man das Feld einfach aus der Feldliste raus;
die Datenbank regelt das schon.
Wenn man fertige SQL Inserts, Updates oder Deletes hat, setzt man diese am schnellsten
direkt über die Connection ab:
Delphi-Quellcode:
ADOConnection1.Execute('INSERT INTO NAD ( NAD ) VALUES ( '+neuesNAD+')';
// Sollte Feld NAD ein Stringfeld sein, dann so
ADOConnection1.Execute('INSERT INTO NAD ( NAD ) VALUES ( '+QuotedStr(neuesNAD)+')';
Wobei die gezeigte Lösung über Parameter zwar etwas langsamer aber doch zu bevorzugen ist.
Aber eben ohne dieses ON DUPLICATE KEY UPDATE.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: fehlermeldung: Missing (;) at the and of sql statement

  Alt 29. Mär 2007, 18:39
1. Ob am Ende ein Semikolon steht oder nicht sollte schnurzpiepegal sein
2. Die Fehlermeldung deutet darauf hin, dass der SQL-Parser das Statement irgendwo mittendrin schon für abgeschlossen hält und dann ein Semikolon erwartet, um es von nächsten Statement zu trennen - bist du sicher, dass Access "ON DUPLICATE KEY blablabla" unterstützt?

// Upps: Shmia war schneller
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:30 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