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 2 von 2     12   
Benutzerbild von himitsu
himitsu

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

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

  Alt 14. Sep 2022, 22:46
LIKE, ILIKE, ~ und Co. sind natürlich für Texte gedacht. Zahlen vergleicht man damit eigentlich nicht.

Hier gibt es ein INTeger-Feld, in dem aber Text drin steht, daher das Problem.

SQLite <> MySQL/MariaDB



Du könntest ein SELECT schreiben, was prüft, ob in dem Feld ein Integer steht und wenn NOT, dann da eine 0 reinschreiben.
https://stackoverflow.com/questions/...mber-in-sqlite
$2B or not $2B
  Mit Zitat antworten Zitat
hewy

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

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

  Alt 16. Sep 2022, 15:12
So problem gelöst.
Damit mir da nicht wieder passiert habe ich dem genannten Feld eine default Wert gegeben damit wird es zu minderst bei neuen Datensätze immer ein korrekte 0 geben.
Be i bereits bestehenden Datensätze hatte ich glück das das Zeit Feld gleich daneben immer null ist wenn die Source_Id 0 sein sollte. Daher lässt sich das ins nächste update für den Anwender einbinden.
Danke an eure Hilfe ohne hätte ich noch ne Weile herumgeübt.

himitsu dein Vorschlag wäre sogar noch etwas besser. Danke
Heinrich Wyssen

Geändert von hewy (16. Sep 2022 um 15:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 16. Sep 2022, 15:34
Das stimmt aber nicht.

Es würde bloß eine 0 reinschreiben, wenn es NULL bleibt, also garnichts zugewiesen wird.
Das DEFAULT wird nur genommen, wenn das Feld im INSERT garnicht enthalten ist, bzw. wenn es explizit als DEFAULT markiert wurde.

Hier wurde aber "etwas" zugewiesen.



Wenn das DBMS es nicht selbst kann, dann könnte man vielleicht mit einem Trigger oder CONTAINS CHECK auf sowas wie IS INT versuchen zu verhindern, dass etwas Falsches rein kommt.


Oder im SELECT bzw. VIEW, wo du dieses Feld explizit nach INT castest, bevor es benutzt wird.
Aber natürlich besser schon vorher dafür zu sorgen, dass garnicht erst was Ungültiges rein kommt, bzw. nach dem INSERT nochmal den Inhalt gegenzuprüfen.
$2B or not $2B

Geändert von himitsu (16. Sep 2022 um 15:40 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

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 12:56 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