Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Abfrage nach leerem Feld per ZeosQuery (https://www.delphipraxis.net/54195-abfrage-nach-leerem-feld-per-zeosquery.html)

tuxhol 29. Sep 2005 14:57

Datenbank: MySQL • Version: 4.0 • Zugriff über: ODBC

Abfrage nach leerem Feld per ZeosQuery
 
Hallöle,

meine schöne einfache SQL-Abfrage direkt auf dem MySQL-Server:
SQL-Code:
SELECT * FROM `tblTitel` where titEAN = '';
liefert mir alle nicht gefüllten Einträge in der Tabelle titEAN, dreizehn an der Zahl.

In meiner ZeosQuery gestaltet sich das leider etwas anders:
Delphi-Quellcode:
ZMySqlQuery1.Sql.Append('SELECT * FROM tblTitel WHERE titEAN = "''" ');
findet leider nur 0 Einträge... :cry:

Mit den herrlichen Hochkommata in DelphiSQLAnweisungen stand ich schon immer auf Kriegsfuß, habe es mit " '''' " und auch mit """" und auch mit `` und letztendlich sogar mit mehreren derben, nicht jugendfreien Flüchen versucht - es bleibt bei 0! :wall:

Was mache ich falsch?

shmia 29. Sep 2005 15:08

Re: Abfrage nach leerem Feld per ZeosQuery
 
Delphi-Quellcode:
ZMySqlQuery1.Sql.Text := 'SELECT * FROM tblTitel WHERE titEAN = ''''';
// oder auch
ZMySqlQuery1.Sql.Text := 'SELECT * FROM tblTitel WHERE titEAN IS NULL';
Hinweis: SQL.Append führt zu Fehlern, falls SQL schon Strings enthält.
Die Zuweisung auf SQL.Text ersetzt 2 Befehle (SQL.Clear; SQL.Append )

tuxhol 29. Sep 2005 15:44

Re: Abfrage nach leerem Feld per ZeosQuery
 
ok, danke für die richige Syntax - scheinbar habe ich aber noch ein anderes Problem:

In der gleichen DB habe ich ebenfalls die Tabelle titVerlag, die identisch definiert ist, nämlich varchar(200) Standard [NULL]. DIESE Tabelle kann ich nun prima mit

SQL-Code:
 ZMySqlQuery1.Sql.Text := 'SELECT * FROM tblTitel WHERE titverlag = ''''';
abfragen und komme auf 25117 Einträge, bei denen titverlag leer ist. Hier klappts also!
Meine Abfrage auf die Tabelle titEAN
SQL-Code:
 ZMySqlQuery1.Sql.Text := 'SELECT * FROM tblTitel WHERE titEAN = ''''';
liefert mir nach wie vor Anzahl 0 als Ergebnis (wobei es 13 sein sollten...)

Ich überschlaf die Sache nochmal, vielleicht habe ich noch wo anders eine Dummheit eingebaut...

:gruebel:

Igotcha 29. Sep 2005 15:52

Re: Abfrage nach leerem Feld per ZeosQuery
 
Zitat:

Zitat von tuxhol
In der gleichen DB habe ich ebenfalls die Tabelle titVerlag, die identisch definiert ist, nämlich varchar(200) Standard [NULL]. DIESE Tabelle kann ich nun prima mit

SQL-Code:
 ZMySqlQuery1.Sql.Text := 'SELECT * FROM tblTitel WHERE titverlag = ''''';
abfragen und komme auf 25117 Einträge, bei denen titverlag leer ist. Hier klappts also!
Meine Abfrage auf die Tabelle titEAN
SQL-Code:
 ZMySqlQuery1.Sql.Text := 'SELECT * FROM tblTitel WHERE titEAN = ''''';
liefert mir nach wie vor Anzahl 0 als Ergebnis (wobei es 13 sein sollten...)

Du fragst in beiden Fällen immer die gleiche Tabelle "tblTitel" ab, oder hast Du Dich oben mit den Begriffen "Tabelle" und "Spalte/Feld" vertan?

Gruß Igotcha

tuxhol 29. Sep 2005 15:56

Re: Abfrage nach leerem Feld per ZeosQuery
 
Sorry - mein Fehler!

Tabelle: tblTitel
mit Spalten: titEAN und titVerlag

sitze wohl schon etwas zu lange davor :drunken:

marabu 29. Sep 2005 16:59

Re: Abfrage nach leerem Feld per ZeosQuery
 
Hi tuxhol,

wieviele werden mit folgender Abfrage gefunden?

Delphi-Quellcode:
ZMySqlQuery1.Sql.Text := 'SELECT * FROM tblTitel WHERE titEAN is NULL';
Grüße vom marabu

tuxhol 30. Sep 2005 09:36

Re: Abfrage nach leerem Feld per ZeosQuery
 
Hi Ihr Lieben,

der zwischenzeitliche Schlaf hat denn doch mal wieder Wunder gewirkt - allerdings nicht nur bei mir, sondern auch bei Delphi. Nach einem beherzten Neustart des Rechners heute Morgen ist alles so, wie es sein soll:
Delphi-Quellcode:
ZMySqlQuery1.Sql.Text := 'SELECT * FROM tblTitel WHERE titean = '''' ';
gibt mir die gleiche Trefferanzahl wie directement auf dem SQL-Server, nämlich aktuell 6
Delphi-Quellcode:
ZMySqlQuery1.Sql.Text := 'SELECT * FROM tblTitel WHERE titean IS NULL';
gibt mir 0, wie es ebenfalls korrekt ist.

Die Ungereimtheiten wurden also durch den Neustart behoben - schade eigentlich, solche Lösungen mag ich nicht so...
Bei meinem eigentlichen Problem mit der Syntax für die Suche nach dem leeren Feld habt IHR mir sehr geholfen, daher nochmals vielen Dank :cheers:


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