Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL Syntaxfehler (https://www.delphipraxis.net/33154-mysql-syntaxfehler.html)

Pseudemys Nelsoni 2. Nov 2004 12:30


MySQL Syntaxfehler
 
moin,

wo ist hier ein fehler?

Delphi-Quellcode:
  q.SQL.Text := Format(
                  'SELECT COUNT(Feld1, Feld2) AS CRESULT ' +
                  'FROM `Felder` ' +
                  'WHERE `Feld1` = %0:s' + feld1 + '%0:s AND `Feld2` = %0:s' + feld2 + '%0:s;',
                  [#39]
                );

nicht über das "%0:s" wundern, das ist letzendlich das gleiche wie: '
ich habe die format funktion genommen da es mich nervt das mysql und delphi die gleichen ' ' benutzen für strings.

hier nochmal wie es aussehen würde wenn man Format() in einer messagebox hätte:

Zitat:

SELECT COUNT(Feld1, Feld2) AS CRESULT FROM `Felder` WHERE `Feld1` = 'das_ist_im_feld1' AND `Feld2` = 'das_ist_im_feld2';

Gollum 2. Nov 2004 12:41

Re: MySQL Syntaxfehler
 
Hallo,

ich würde mal auf COUNT(Feld1, Feld2) tippen. Ich wusste gar nicht, dass das mit 2 Feldern geht.

Igotcha 2. Nov 2004 12:45

Re: MySQL Syntaxfehler
 
Geht auch nicht, da es keinen Sinn macht.

Pseudemys Nelsoni 2. Nov 2004 12:47

Re: MySQL Syntaxfehler
 
wie mach ich es dann?

ich möchte in der datenbank prüfen ob ein NICK und das dazugehörige passwort existieren (ergebis wäre dann > 0) sonst wäre es 0 (existiert nicht)

Igotcha 2. Nov 2004 12:54

Re: MySQL Syntaxfehler
 
Ganz einfach:

Delphi-Quellcode:
ZQ1.SQL.Text:='SELECT user, password FROM user WHERE user=:user and password=:pass';
ZQ1.ParamByName('user').asString:='User1';
ZQ1.ParamByName('pass').asString:='dasPasswort';
ZQ1.Open;
If ZQ1.RecordCount > 0 Then
   ShowMessage('Login OK')
else
   ShowMessage('Login fehlgeschlagen');

Domo Sokrat 2. Nov 2004 12:58

Re: MySQL Syntaxfehler
 
Hi, ich hab' auch noch einen. Wie wär's hiermit?

Code:
SELECT COUNT (name)
FROM  users
WHERE name = 'Username' AND
       pass IS NOT NULL;
Sollte Deinen Anforderungen entsprechen.

[edit]Uuups! Jo! Semikolon muss weg! Copy'n'Paste :stupid: [/edit]

Jelly 2. Nov 2004 13:48

Re: MySQL Syntaxfehler
 
@Pseudemys Nelsoni:
lass mal das " ; " am Ende deines SQL Befehls weg. Damit kommt Delphi nicht klar.

Pseudemys Nelsoni 2. Nov 2004 14:02

Re: MySQL Syntaxfehler
 
@Domo, wird da das passwort auch auf richtigkeit überprüft?

@jelly, kommt delphi damit nicht klar obwohl es innerhalb eines strings ist? ich meine normal anzeigen kann ich es ja mit showmessage(';');

Jelly 2. Nov 2004 14:07

Re: MySQL Syntaxfehler
 
Du hast mich falsch verstanden.. Delphi kommt mit klar. Nur wenn du den SQL Befehl mit abschliessendem ";" an den MySQL Server, kriegst du einen Fehler.

Das ; am Ende eines MySQL Befehls gibt dem Server an, daß der Befehl zu Ende ist und eventuell ein 2ter kommt. Somit kannst du z.B. über PHPMyAdmin ganze Skripte an den Server senden. In Delphi über die TQuery (oder Zeoskomp, egal) klappt das aber nicht... Also Fehlermeldung.

Gruß, Tom

PS: übrigens, um ein einfaches Anführungszeichen ' in einen Delphi String einzugeben, muss du ihn einfach 2mal eintippen, der wird dann als einzelner ' interpretiert.

Pseudemys Nelsoni 2. Nov 2004 14:15

Re: MySQL Syntaxfehler
 
moin jelly,

wie ich gerade rausgefunden hab, lag es wirklich an meinem COUNT(), also mit ";" gehts (zum glück *g*) auch.

Zitat:

PS: übrigens, um ein einfaches Anführungszeichen ' in einen Delphi String einzugeben, muss du ihn einfach 2mal eintippen, der wird dann als einzelner ' interpretiert.
jo, nur war mir das nachher zu doof weil ich da manchmal 3-4 hintereinander brauchte, da hatte ich kein überlick mehr :mrgreen:

danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 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