Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ADOQuerry funktioniert nicht richtig (https://www.delphipraxis.net/198992-adoquerry-funktioniert-nicht-richtig.html)

Luckner 17. Dez 2018 14:10

Datenbank: Access • Version: 2003 • Zugriff über: ADOquerry

ADOQuerry funktioniert nicht richtig
 
Hallo,
meine Select-Abfrage:

Delphi-Quellcode:
Datamodule1.ADOQueryRollenLagerplatz.SQL.Add('SELECT Materialrollen.*, Rollenlager.Lagerplatz, RollenKommentar.Kommentar FROM (Materialrollen LEFT JOIN Rollenlager ON Materialrollen.Rollennummer = Rollenlager.Rollennummer)');
Datamodule1.ADOQueryRollenLagerplatz.SQL.Add('LEFT JOIN RollenKommentar ON Materialrollen.Rollennummer = RollenKommentar.Rollennummer where Materialrollen.DatumAb = NULL ORDER BY Materialrollen.DatumWE');
funktioniert eigentlich, jedoch ohne die "where Materialrollen.DatumAb = NULL" Anweisung. Das Feld "DatumAb" git es nur in der Tabelle "Materialrollen". Eigentlich müsste man die Tabelle "Materialrollen" vorselektieren. Aber möglicherweise geht Das auch in der oberen Anweisung. Könnte mir Jemand helfen?

Gruß, Luckner

jobo 17. Dez 2018 14:28

AW: ADOQuerry funktioniert nicht richtig
 
Also ich würde sagen:
Ein Vergleich mit NULL immer so:
<irgendeinfeld> is Null
oder
<irgendeinfeld> is not Null

Da Du keine Fehlermeldung lieferst, wäre meine Prognose in der Form: Syntaxfehler bzw. immer leere Menge.
Aber wer weiß, Access macht vielleicht auch das anders als alle anderen.

Dann:
Damit das mit dem Outerjoin und dem "is Null" dahinter klappt, würde ich die is null Prüfung mit in das Outerjoin Kriterium packen.

Luckner 17. Dez 2018 15:03

AW: ADOQuerry funktioniert nicht richtig
 
den Fehler habe ich vergessen. Ohne die where-Anweisung werden alle Rollen angezeigt. Mit dieser Anweisung keine. Wobei ich weiß, dass es ca. 200 Einträge gibt, die das Kriterium "Materialrollen.DatumAb = NULL" erfüllen.

Luckner

hoika 17. Dez 2018 15:09

AW: ADOQuerry funktioniert nicht richtig
 
Hallo,
dann führe die Ursprungs-Query noch mal aus und sage uns den Fehler.

Luckner 17. Dez 2018 15:13

AW: ADOQuerry funktioniert nicht richtig
 
Hallo jobo,

danke für den Hinweis nicht "where Materialrollen.DatumAb = NULL" sondern "where Materialrollen.DatumAb is NULL".

Jetzt funktioniert es.

Gruß, Luckner

p80286 17. Dez 2018 20:33

AW: ADOQuerry funktioniert nicht richtig
 
ADO schluckt "irgendwas=NULL" problemlos, da gibt es keine Fehlermeldung.

Gruß
K-H

hoika 17. Dez 2018 21:54

AW: ADOQuerry funktioniert nicht richtig
 
Hallo,
auch bei Firebird klappt ein =NULL, ob das Ergebnis das gewünschte Ergebnis ist, darf angezweifelt werden.

https://www.quora.com/What-is-the-di...2%80%9D-in-SQL

jobo 18. Dez 2018 07:14

AW: ADOQuerry funktioniert nicht richtig
 
Zitat:

Zitat von p80286 (Beitrag 1421095)
ADO schluckt "irgendwas=NULL" problemlos, da gibt es keine Fehlermeldung.

Zitat:

Zitat von hoika (Beitrag 1421100)
Hallo,
auch bei Firebird klappt ein =NULL, ob das Ergebnis das gewünschte Ergebnis ist, darf angezweifelt werden.

Ja, sorry, meine Antwort war schlampig formuliert.
Ich habe im Eröffnungspost keine Erläuterung zum Problem gelesen, nicht mal das wörtliche "geht nicht". Ok, dafür war es ein "..funktioniert, aber nicht mit..". Ein erster Blick hat zwar das "=Null" ergeben, aber das muss ja nicht alles sein.
Ich wollte einfach nur wissen, ob es Fehlermeldungen gibt und welche Erwartungshaltung vorliegt.

Für die Akten: ADO ist es sicher sowieso egal, denn selbst die Datenbank interessiert es nicht, ob man den = Operator (und andere) auf NULL anwendet.

p80286 18. Dez 2018 07:31

AW: ADOQuerry funktioniert nicht richtig
 
Ich bin oft genug vor diese Wand gelaufen, der Fehler sitzt eben meist vor der Tastatur.

Gruß
K-H

jobo 18. Dez 2018 07:36

AW: ADOQuerry funktioniert nicht richtig
 
Ja, sehr gemein auch die Variante NULL Feldinhalt konkateniert mit anderen Feldern oder Textkonstanten oder Null + <zahl>.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz