Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   SQL Syntax Fehler? (https://www.delphipraxis.net/149291-sql-syntax-fehler.html)

Sanguis 18. Mär 2010 00:56

Datenbank: SQLite • Version: 3 • Zugriff über: ASQLite Komponenten

SQL Syntax Fehler?
 
Hallo,

ich steh auf dem Schlauch. Folgender Delphi Code:
Delphi-Quellcode:
roster.ASQLite3Query1.Active := false;
 roster.ASQLite3Query1.SQL.Clear;
 roster.ASQLite3Query1.SQL.Add('SELECT * FROM wrestler WHERE PromoID = ' + form1.promID.Caption);
 roster.ASQLite3Query1.Active := true;
Eigentlich ne einfache Sache. Doch ich bekomme immer die Meldung, das es einen Syntax Error near WHERE gibt. Ich komm nicht drauf, was da falsch sein soll. Hab ich Tomaten auf den Augen?

Gruß,
Andreas

Luckie 18. Mär 2010 01:42

Re: SQL Syntax Fehler?
 
Kann es sein, dass du das abschließende Hochkomma vergessen hast?

Sanguis 18. Mär 2010 02:08

Re: SQL Syntax Fehler?
 
Hallo,

das wars! Komischerweise funzt es an anderer Stelle nur ohne ;.
Aber Problem gelöst, danke :)

Gruß,
Andreas

Hansa 18. Mär 2010 02:16

Re: SQL Syntax Fehler?
 
Ne, das stimmt so schon (zumindest im Prinzip). Die Caption for die Zusammensetzung eines SQL-Statements zu benutzen ist allerdings schon etwas ungewöhnlich. Steht da im OI oder sonstwo : "Bitte geben sie...", dann kann das weltbeste SQL damit wohl nichts anfangen. 8)

@Das wars : Poste mal das jetzige SQL.ADD. Da ist kein Syntaxfehler.

joachimd 18. Mär 2010 09:10

Re: SQL Syntax Fehler?
 
Zitat:

Zitat von Sanguis
Delphi-Quellcode:
roster.ASQLite3Query1.Active := false;
 roster.ASQLite3Query1.SQL.Clear;
 roster.ASQLite3Query1.SQL.Add('SELECT * FROM wrestler WHERE PromoID = ' + form1.promID.Caption);
 roster.ASQLite3Query1.Active := true;

Um solcherlei Fehler zu vermeiden verwende man Parameter ;)

p80286 18. Mär 2010 16:43

Re: SQL Syntax Fehler?
 
Zitat:

Zitat von joachimd
Um solcherlei Fehler zu vermeiden verwende man Parameter ;)

So ist das!

Und bemüht man den Debugger,sieht man was in "roster.ASQLite3Query1.SQL.Text" steht.
Das ist auch schon mal ein guter Hinweis.


Gruß
K_H

mkinzler 18. Mär 2010 17:06

Re: SQL Syntax Fehler?
 
Oder ob, das was in der Caption, steht mit dem Feldtyp vereinbar ist

Ralf Kaiser 18. Mär 2010 17:24

Re: SQL Syntax Fehler?
 
Zitat:

Zitat von Sanguis
Delphi-Quellcode:
roster.ASQLite3Query1.SQL.Add('SELECT * FROM wrestler WHERE PromoID = ' + QuotedStr( form1.promID.Caption )); // hier QuotedStr verwenden!

Du kannst den Text in der WHERE-Klausel nicht einfach so übergeben, er muss schon in Anführungszeichen stehen (ansonsten wurde ja schon gesagt, dass Parameter besser sind)

Sanguis 18. Mär 2010 17:43

Re: SQL Syntax Fehler?
 
Nein, in der DB steht das Feld als Integer. Das braucht keine Anführungszeichen.
Problem ist eh gelöst, der fehlende ; wars. Danke nochmal :)

Gruß,
Andreas

Ralf Kaiser 18. Mär 2010 17:59

Re: SQL Syntax Fehler?
 
Zitat:

Zitat von Sanguis
Nein, in der DB steht das Feld als Integer. Das braucht keine Anführungszeichen.

Na ja, das konnte man aus dem gegebenen Quelltext nun wirklich nicht ersehen (zumal wenn eine Caption übergeben wird sieht das doch sehr stark nach String aus...)

:wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 Uhr.
Seite 1 von 2  1 2      

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