AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Abfrage funktioniert nur bedingt
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Abfrage funktioniert nur bedingt

Ein Thema von harfes · begonnen am 30. Nov 2016 · letzter Beitrag vom 2. Dez 2016
Antwort Antwort
Seite 2 von 2     12   
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#11

AW: SQL-Abfrage funktioniert nur bedingt

  Alt 30. Nov 2016, 12:27
Die Angabe eines lokalisierten (länderspezifischen) Strings, der ein Datum enthält, funktioniert nur dann, wenn die Clientsession dieses Format eingestellt hat. Das wird idR grundsätzlich erstmal erreicht, wenn ein Setupprogramm bei der Installation des DB Client diese Ländereinstellung des OS erkennt und zur Verwendung durch den DB Client einstellt.
Das betrifft die Parameterangabe als Text.

Dann gibt es noch die DB Seite mit dem zu vergleichenden Feld, die natürlich dann auch vom Typ Date sein sollte, häufig aber aus Unkenntnis oder Faulheit ebenfalls als String deklariert ist und einen sauberen Vergleich unnötig erschwert.

Letztlich stellt sich mir immer die Frage, warum gerade Delphi Entwickler, denen der Begriff eines Datentyps nicht fremd sein sollte, an dieser Stelle immer so rumeiern.
Warum lege ich mir also an der Stelle (bewusst) ein Überraschungsei in Nest, wenn ich weiß, dass die Funktion der Abfrage mehr oder weniger nur Zufall ist (weil sie von den Systemeinstellungen abhängt).
Gruß, Jo
  Mit Zitat antworten Zitat
harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
180 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: SQL-Abfrage funktioniert nur bedingt

  Alt 2. Dez 2016, 07:05
Danke für die vielen Anregungen. Die Lösung ist, dass das DB-Feld ein TDateTime ist (und es werden sogar Uhrzeiten gespeichert, die aber für die Monatsabfrage keine Rolle spielen) und somit <=datum+1 funktioniert - danke Alex517. Und ja, die Werte werden als Parameter übergeben - in meiner Anfrage hier hatte ich die nur als String dargestellt, um das Problem (vermeintlich?) besser darstellen zu können...

Hartmut
Hartmut
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#13

AW: SQL-Abfrage funktioniert nur bedingt

  Alt 2. Dez 2016, 07:33
Moin...
Zitat:
um das Problem (vermeintlich?) besser darstellen zu können...
...das war ein Trugschluß. Die Parameter sind eine wichtige Information um das ganze SQL Statement beurteilen zu können. Die Übergabe der Parameter an das Statement ist eine andere "Abteilung".
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

AW: SQL-Abfrage funktioniert nur bedingt

  Alt 2. Dez 2016, 10:40
Letztlich stellt sich mir immer die Frage, warum gerade Delphi Entwickler, denen der Begriff eines Datentyps nicht fremd sein sollte, an dieser Stelle immer so rumeiern.
Zum einen weil viele Datenbanken(-Einführungen) hier auch herum eiern und Typen hinter irgendwelchen Format-Funktionen versteckt werden. Ähnlich verhält es sich mit den verwendeten Zeichensätzen, die sowohl da als auch da und in Kombination, aber vielleicht auch ganz anders verwendet werden.

Gruß K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#15

AW: SQL-Abfrage funktioniert nur bedingt

  Alt 2. Dez 2016, 17:29
Je nachdem welche Server Erosion du hast, empfehle ich einfach die Funktion between.
Damit hätte ich nie diese Probleme. Und du hast das konvertieren nicht, dass wieder performance kostet ( auf Funktionen kann kein Index angewendet werden) somit läuft es auf ein table scan hinaus ...
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !
  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 16:51 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