AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL: Fehlermeldung "rechtes Anführungszeichen fehlt"

SQL: Fehlermeldung "rechtes Anführungszeichen fehlt"

Ein Thema von alfgar · begonnen am 16. Sep 2004 · letzter Beitrag vom 16. Sep 2004
Antwort Antwort
alfgar

Registriert seit: 16. Sep 2004
3 Beiträge
 
#1

SQL: Fehlermeldung "rechtes Anführungszeichen fehlt&quo

  Alt 16. Sep 2004, 09:04
Hallo,
bin neu hier und auch neu in Delphi
Hab eine warscheinlich triviale Frage zu einem
Query.SQL.Text - Statement:

Query1.SQL.Text := 'INSERT INTO errorfile(PartName, PartNo, Error) VALUES ('''+strTmpPart+''', '''+strTmpNo+''', '''+strTmpError+''');';

bringt immer die Fehlermeldung "rechtes Anführungszeichen fehlt".
Hab schon einiges ausprobiert, aber keine Lösung gefunden.
Übrigens: die errorfile Tabelle wird einwandfrei mit den
gewünschten Daten gefüllt.

Was mach ich falsch?

Vielen Dank für die Hilfe
alfgar
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: SQL: Fehlermeldung "rechtes Anführungszeichen fehlt

  Alt 16. Sep 2004, 09:08
Hai alfgar,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS".

Ich würde auf jedem Fall vermeiden mit solchen Stringkonstruktionen zu arbeiten. Mit diesen ganzen '''' baust Du dir selber nur Fehler ein.
Optimal wäre die Verwendung von Parametern. Um dir dafür ein Beispiel zu geben müsste ich aber wissen mit welchen Querys Du arbeitest. (ADOQuery usw.).

[Edit]@Alfons_G: Das wollte ich eben auch noch schreiben. *g*
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#3

Re: SQL: Fehlermeldung "rechtes Anführungszeichen fehlt

  Alt 16. Sep 2004, 09:11
Zusätzlich zur Verwendung von Parametern sollte man Strings bei SQL-Anweisungen nie mit manuell gesetzten Anführungszeichen versehen, sondern immer die Delphi-Funktion QuotedStr() verwenden. Die "verarztet auch Anführungszeichen, welche im String vorkommen.

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: SQL: Fehlermeldung "rechtes Anführungszeichen fehlt

  Alt 16. Sep 2004, 09:21
So, ich habe mal schnell etwas getippelt
Einmal mit Parameter (was ich persönlich für besser halte) und einmal mit der Verwendung von QuotedStr.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Text := 'INSERT INTO errorfile(PartName, PartNo, Error) '+#10
  + ' VALUES (:pstrTmpPart,:pstrTmpNo,:pstrTmpError)';
  //Die mit : beginnenden "Variablen" sind die Parameter

  Query1.ParamCheck := True; // Parameterverarbeitung aktivieren

  //Den Parameter Werte zuweisen
  Query1.Params.ParamByName('pstrTmpPart').AsString := strTmpPart;
  Query1.Params.ParamByName('pstrTmpNo').AsString := strTmpNo;
  Query1.Params.ParamByName('pstrTmpError').AsString := strTmpError;
  Query1.ExecSQL; // Query ausführen
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Text := 'INSERT INTO errorfile(PartName, PartNo, Error) ' +#10
   + 'VALUES ('
   + QuotedStr (strTmpPart) +','
   + QuotedStr (strTmpNo) + ','
   + QuotedStr (strTmpError)
   + ')';
   Query1.ExecSQL;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#5

Re: SQL: Fehlermeldung "rechtes Anführungszeichen fehlt

  Alt 16. Sep 2004, 09:29
Erstmal Willkommen in der DP!!



Zitat von alfgar:
Query1.SQL.Text := 'INSERT INTO errorfile(PartName, PartNo, Error) VALUES ('''+strTmpPart+''', '''+strTmpNo+''', '''+strTmpError+''');';

N Tip wäre vielleicht, das erste Semikolon in deinem Statement weg zu lassen. Du brauchst unter Delphi deine Statements nicht mit einen Semikolon abzuschließen. Daher wirst du auch die Meldung "Rechtes Anführungszeichen fehlt" bekommen. Unter Delphi beendest du ja mit dem Semikolon eine Anweisung. Versuchs mal so:
Query1.SQL.Text := 'INSERT INTO errorfile(PartName, PartNo, Error) VALUES ('''+strTmpPart+''', '''+strTmpNo+''', '''+strTmpError+''')'; Gruß,
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
alfgar

Registriert seit: 16. Sep 2004
3 Beiträge
 
#6

Re: SQL: Fehlermeldung "rechtes Anführungszeichen fehlt

  Alt 16. Sep 2004, 09:43
Ups(schon antworten da ?!),
ihr seit ja schneller als meine ISDN-Verbindung

Ja, also ich habe auf meinem Formular ein TQuery eingefügt, welches ich über
ODBC mit einer MySQL-datenbank verbunden habe.

ADOQuery hab ich leider nicht zur Verfügung
Die Hilfe (Thema z.B. ADOConnection) sagt dazu "Dieses Leistungsmerkmal ist in der aktuellen Delphi-Version nicht verfügbar."
Ich benutze Delphi 5 (Compilierung 5.62).
Schade eigentlich ADO kenn ich schon aus VB.
Jetzt schau ich mir das mit dem QuotredStr() mal an...

Danke schon mal für den Tip
alfgar
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#7

Re: SQL: Fehlermeldung "rechtes Anführungszeichen fehlt

  Alt 16. Sep 2004, 09:48
Zitat von alfgar:
Ups(schon antworten da ?!),
ihr seit ja schneller als meine ISDN-Verbindung
Aber immer

Das mit den Parametern sollte so auch bei dir Funktionieren!

Wenn Du viel mit mySQL arbeitest kann ich dir z.B. die Zeos-Komponenten empfehlen.
Da wird auf dem Rechner nur eine DLL benötigt um auf mySQL-Server zugreifen zu können.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
alfgar

Registriert seit: 16. Sep 2004
3 Beiträge
 
#8

Re: SQL: Fehlermeldung "rechtes Anführungszeichen fehlt

  Alt 16. Sep 2004, 09:54
Danke ! an alle Beteiligten

Jetzt ist alles klar.

alfgar
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:12 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