![]() |
Datenbank: Firebird • Version: 2.5.5 • Zugriff über: Zeos 7.1.3
Sql abrage mit "is Null"
Hallo zusammen,
ich habe folgendes Problem - In meiner Anwendung habe ich eine SQl Abfrage mit diesem Code Select * from Kunden where geloescht is null Auf meinem PC und andere liefert die Abfrage die gewünschten Daten nur auf meinem Laptop "Lenovo T430" ist die Abfrage leer. Beide haben das gleiche Betriebssystem und auch die gleiche Firbird Version. Ändere ich "is Null in is not Null" liefern beide das gleiche Ergebnis. Woran kann das liegen. Kennt jemand das Problem. Gruß Peter |
AW: Sql abrage mit "is Null"
dann sind halt die Daten anders.. Bitte beachten: ein leerer String ist nicht gleich IS NULL!
|
AW: Sql abrage mit "is Null"
Interessant wären die Daten in Deiner DB, das Modell Deines Laptops ist hier eher von untergeordneter Bedeutung.
Was bedeutet Zitat:
Code:
Dein Problem beheben. Für eine konkrete Aussage müßte man allerdings wissen welchen Inhalt geloescht hat.
geloescht:=not(geloescht)
Gruß K-H |
AW: Sql abrage mit "is Null"
Hallo,
Was für ein Feldtyp ist "geloescht"? - Schreit natürlich nach Ja/Nein. Sollte es aber ein STRING Feld sein, hatte ich das ähnlich bei SQL Server. Neben den DB-Einstellungen, wo sich hierfür "isNull" für "leer" konfigurieren ließ, half letzten Endes bei importierten Daten nur, zusätzlich auf <leer> (='') zu filtern. ... Was ungefähr die Aussage von Lemmy in Langform ist --- |
AW: Sql abrage mit "is Null"
Hallo,
< nur kurz alle anderen Antworten zusammengefasst > < Auf meinem PC und andere liefert die Abfrage die gewünschten Daten nur auf meinem Laptop "Lenovo T430" ist die Abfrage leer. > kopiere die GDB/FDB von "andere" auf deinen Laptop und du hast das gleiche Ergebnis > Beide haben das gleiche Betriebssystem und auch die gleiche Firbird Version. Ändere ich "is Null in is not Null" liefern beide das gleiche Ergebnis. > also haben alle Datensätze einen Wert in "geloescht" stehen und wenn es ein LeerString ist wenn es sich nicht um deine eigenen Daten und damit deinen Fehler handelt oft legt man einen Datensatz an und lässt beim Insert unwichtige Felder weg, dann wäre Geloescht = Null wird beim Insert aber doch etwas eingegeben (Leerstring ""), dann ist Geloescht <> Null Where (Geloescht Is Null) Or (Geloescht="") < Woran kann das liegen. Kennt jemand das Problem. > Das ist kein Problem, sondern Absicht (aus Sicht von Firebird) Heiko |
AW: Sql abrage mit "is Null"
Hallo zusammen,
dieser Satz ist falsch - "Ändere ich "is Null in is not Null" liefern beide (das gleiche) ein Ergebnis." Das Datenfeld "geloescht" ist VARCHAR und ist entweder NULL oder 'X'. Beim Erstellen eines neuen Datensatzes wird der Wert auf NULL gesetzt. Löscht der Bediener einen Datensatz wird dieser nicht wirklich gelöscht, sondern nur ein "X" in das Feld "geloescht" gesetzt. Grund Daten sollen erhalten bleiben und bei Bedarf zurückgeholt werden. Dies kommt heraus, wenn man eine Software speziell für einen Bekannten aus Gefälligkeit und mit viel Zeit erstellt. Bevor ich es vergesse, beide Rechner benutzen die gleiche Datenbank. Mein Programm läuft auf ca. 20 PC und 10-15 Laptops die auf den gleichen Server zugreifen ohne Probleme, nur auf meinem Laptop zeigt die Abfrage kein Ergebnis. Heute wurde mir berichtet das nach einem Updaten von Win7 auf Win10 ein DBMemofeld nur noch Fragezeichen zeigt. Alles ein wenig komisch .... Die Software ist Zeit ca. 11 Jahren im Gebrauch und kaum verändert worden. Hat also Win2000, XP, sogar Vista, Win7 und auch schon Windows10 auf verschiedenen Rechner mit immer aktuellen Firebird Versionen gesehen und auch ohne Probleme gelaufen. (verschieden Betriebssysteme gleichzeitig) Für mich kann es nur an der Hardware liegen. Aber ich lasse mich gern eines Besseren belehren. Gruß und Danke für die Antworten Peter |
AW: Sql abrage mit "is Null"
Du kommst wohl nicht drum herum, die Dateninhalte zu untersuchen und irgendwann mal Unterschiede zu finden. Die können aber bei gemeinsamer DB nur über Zugriffsoptionen des Client beeinflusst sein.
Ich würde mit Flamerobin oder isql (möglichst nicht Dein System) anfangen, PrüfAbfragen auf funktionierenden und dem nicht funktionierenden System laufen lassen. Z.B. ein Count auf das Feld machen (ohne where clause) Naheliegend wären ja eigentlich Firebird Client Einstellungen, die auf dem System verdreht sind. Aber da kenne ich mich nicht aus. |
AW: Sql abrage mit "is Null"
Zitat:
Zitat:
Zitat:
Zitat:
Gruß K-H |
AW: Sql abrage mit "is Null"
Hallo Peter,
kannst Du bitte einfach einmal testweise zusätzlich zu "isNull" auf "= ''" prüfen. Evtl. ist das Thema dann ganz schnell beendet. - Oder hast Du das schon versucht? |
AW: Sql abrage mit "is Null"
Eine Prüfung auf ".. = NULL" dürfte nie wahr werden, weil NULL eben nicht definiert ist. Oder meinst Du etwas anderes mit auf " =" prüfen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 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