AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

Ein Thema von hewy · begonnen am 14. Sep 2022 · letzter Beitrag vom 16. Sep 2022
Antwort Antwort
Seite 1 von 2  1 2      
hewy

Registriert seit: 2. Aug 2006
Ort: Arni (Region Zürich) Schweiz
81 Beiträge
 
Delphi XE5 Enterprise
 
#1

SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

  Alt 14. Sep 2022, 15:17
Datenbank: SQLite • Version: 3.10.0 • Zugriff über: Delphi -> SQL Query
Eigenartiges Problem folgende Abfrage sollte mir doch alle Datensätze der Tabelle geben welche im Feld ‘SourceId_Out’ den Wert 0 haben.
‘SELECT SourceId_Out FROM Tm_TimeDayData WHERE SourceId_Out = 0’ oder auch '.... < 1'.
Allerdings muss ich in meinem Fall ‘SELECT SourceId_Out FROM Tm_TimeDayData WHERE SourceId_Out > 99999999’ eingeben kann auch noch ein paar 99 dazu hängen
Komme aber nicht darauf was ich hier falsch mache.
DB: SQLite Habe das selbe Verhalten in Delphi XE5 mit FireDAC oder mit SQLiteExpert direkt die Abfrage unter 'SQL'.
Die Tabelle Tm_TimeDayData enthällt im Feld ‘SourceId_Out’ unterschiedlichste Werte versuche ich einer dieser Werte, Beispiel 327 nehme dann funktioniert es einwandfrei. Und gibt mir alle Datensätze welche im genannten Feld 327 haben.

Wo könnte das Problem liegen und wie komme ich damit weiter. Nach 999999 zu filter um die Datensätze mit dem Wert 0 im genannten Feld zu bekommen wäre mir eher etwas unsympathisch.

Schon mal vielen Dank für jegliche Hilfe oder Hint.
Heinrich Wyssen

Geändert von hewy (14. Sep 2022 um 15:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

  Alt 14. Sep 2022, 15:37
Bist du sicher, dass da 0 in dem Feld steht und nicht ein nicht darstellbarer Wert?

Könntest du vielleicht ein kleines Beispiel anhängen? Du kannst ja die anderen Felder löschen. Ich hatte das Problem noch nicht, wenn ich solche Abfragen bei SQLite gemacht habe.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
hewy

Registriert seit: 2. Aug 2006
Ort: Arni (Region Zürich) Schweiz
81 Beiträge
 
Delphi XE5 Enterprise
 
#3

AW: SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

  Alt 14. Sep 2022, 16:14
Danke für dein Hilfe Angebot Sebastian,
Habe noch etwas versucht.
Wenn ich die den Inhalt der Tabelle nach Excel kopiere und dann wieder zurück funktioniert es anschliessend mit den WHERE Feld = 0.
In Excel sieht es auch korrekt aus. Daher gehe ich davon aus dass die Tabelle irgendwie korrupt ist.
Also geht es darum einen Weg zu finden wie ich die 0 in echte 0 umwandeln kann.
Kann Dir gerne eine Tabelle mit reduziertem Inhalt zustelle vielleicht siehst Du da woran es liegt und was zu tun ist ohne die Daten zu verlieren.
Heinrich Wyssen
  Mit Zitat antworten Zitat
hewy

Registriert seit: 2. Aug 2006
Ort: Arni (Region Zürich) Schweiz
81 Beiträge
 
Delphi XE5 Enterprise
 
#4

AW: SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

  Alt 14. Sep 2022, 16:34
Und hier eine DB. es hat zwei Tabelle Tm-SelectTest und Tm_SelectTest_Bak sind beide gleich mit gleichem Inhalt.
Und auch eine View 'SelectTest' diese sollte alle Datensätze auflisten welche im Feld SourceId_Out = 0 haben.
SELECT * FROM Tm_SelectTest WHERE SourceId_Out = 0
Findet aber kein Datensatz obwohl es einige gibt.
Heinrich Wyssen

Geändert von hewy (14. Sep 2022 um 20:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

  Alt 14. Sep 2022, 18:05
Also ich weiß nicht, warum das bei dir nicht der Fall ist, aber bei mir zeigt SQLite Expert direkt an, dass da etwas komisch ist:

2022-09-14.jpg

In der Spalte steht, wie man sieht, ein Text statt einer Zahl. Und dieser Text ist natürlich nicht "= 0". Deine Tabelle ist nicht in Ordnung.

Du solltest den Anhang übrigens wieder löschen. Du hast vergessen die gelöschten Tabellen mit "Vacuum" zu bereinigen. Die gelöschten Inhalte, die da noch drin sind, sind glaube ich nicht für die Öffentlichkeit bestimmt.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

  Alt 14. Sep 2022, 18:17
Ich sehe keine 0 in dieser Tabelle, aber ganz viele "irgendwas"


[edit]
wo kommt den plötzlich der jaeneke her

Joar, so eine halbwegs typlose Datenbank hält schnell mal ein paar kleine Problemchen bereit, wenn man überall nahezu alles reinschreiben kann.
Miniaturansicht angehängter Grafiken
bdselecttest.db.jpg  
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (14. Sep 2022 um 18:20 Uhr)
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
491 Beiträge
 
Delphi 12 Athens
 
#7

AW: SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

  Alt 14. Sep 2022, 18:31
Mit dem Delphi Tool db Explorer wird aber eine 0 angezeigt. Dazu hab ich mal die DB dort registriert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#8

AW: SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

  Alt 14. Sep 2022, 18:44
Da SQLite nicht wirklich typsicher ist, kann man da viel Mist bauen.

Bei deiner Abfrage wird das INT wohl auch als Integer behandelt und dann der "ungültige" Wert in eine 0 konvertiert,
scheinbar leider ohne jegliche Fehlermeldung/Warnung.

Das WHERE wird aber ohne Cast ausgeführt und bekommt halt mit, dass der "Text" keine 0 ist.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (14. Sep 2022 um 18:46 Uhr)
  Mit Zitat antworten Zitat
hewy

Registriert seit: 2. Aug 2006
Ort: Arni (Region Zürich) Schweiz
81 Beiträge
 
Delphi XE5 Enterprise
 
#9

AW: SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

  Alt 14. Sep 2022, 21:06
Oh Vielen Dank für eure Hilfe.
Hat mich auf den Pfad gebracht.
Habe wohl eine ältere oder uralte Version von SQLite Expert 3.5.93... auf dem Rechner hier. denn hier werden schön 0 angezeigt.
Habe das Problem damit erkennen können. Nun muss ich allerdings eine Lösung finde die bestehenden Datenbanken zu bereinigen und wo 0 angezeigt wird auch 0 eintrage.
Mal sehen wie sich das machen lässt!
Ich schaue mir das morgen an habe schon mal eine Idee.
Interessant ist auch dass Delphi XE5 FireDAC wenn ich das Feld 'SourceId_Out' aus eine anderen Abfrage auslese 0 zurück gibt, wenn ich aber die genannte SQL SELECT Abfrage ausführe keinen Datensatz findet.
Schon mal Danke gebe dann Bescheid wie ich das Problem bei den Kunden beheben konnte.
Heinrich Wyssen
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen
Online

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
677 Beiträge
 
Delphi 12 Athens
 
#10

AW: SQLite will mit SELECT ... WHERE fieldxx = 0 Werte nicht anzeigen.

  Alt 14. Sep 2022, 22:21
Interessant ist auch dass Delphi XE5 FireDAC wenn ich das Feld 'SourceId_Out' aus eine anderen Abfrage auslese 0 zurück gibt, wenn ich aber die genannte SQL SELECT Abfrage ausführe keinen Datensatz findet.
Ich setze zwar MySQL ein, aber über dieses Problem bin ich auch schon mehrfach gestolpert (der Inhalt stimmt eigentlich, trotzdem wird nichts gefunden).
Hast Du schon einmal versucht, statt mit dem "=" mit "LIKE" zu arbeiten? K.A. ob SQLLite dies kennt, aber unter MySQL hilft es
Roland
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 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