Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Abfrage von Datum + Uhrzeit mit ADO (https://www.delphipraxis.net/111132-abfrage-von-datum-uhrzeit-mit-ado.html)

Alfonso 30. Mär 2008 11:06

Datenbank: Access • Version: 2000 • Zugriff über: ADO

Abfrage von Datum + Uhrzeit mit ADO
 
Habe eine Access Datenbank Tabelle mit einen Datumsfeld. In diesem sind Datum + Uhrzeit gepeichert (ein Art Timestamp).
Wenn ich in Access direkt folgenden SQL Befehl eingebe, erhalte ich das gewünschte Ergebnis.
SQL-Code:
SELECT * FROM tbl_Rechkopf WHERE tbl_Rechkopf.Erstellungszeitpunkt>=#3/30/2008 00:00:00# AND tbl_Rechkopf.Erstellungszeitpunkt<=#3/30/2008 23:59:59#
Wenn ich dieses von Delphi an ADO.Commandtext übergebe, erhalte ich nach ADO.Active:=true die Fehlermeldung:
Delphi-Quellcode:
Ein Parameterobjekt ist nicht ordnungsgemäß definiert. Inkonsistente oder unvollständige Informationen wurden angegeben
Lasse ich die Uhrzeitangaben weg, gibt es keine Fehlermeldung, aber ich erhalte kein Ergebniss, da ADO intern beide Daten auf 0:00 Uhr setzt und es gibt keinen Datensatz zwischen 30.3 0:00 Uhr und 30.3 0:00 Uhr.

Hat jemand einen Tipp?

Gruß
Alfonso

marabu 30. Mär 2008 11:10

Re: Abfrage von Datum + Uhrzeit mit ADO
 
Hallo Alfonso,

entweder du stellst dein Statement auf Parameternutzung um oder du schaltest ParamCheck aus, damit die Doppelpunkte nicht als Metazeichen erkannt werden.

Freundliche Grüße

mkinzler 30. Mär 2008 11:14

Re: Abfrage von Datum + Uhrzeit mit ADO
 
Versuch es mal mit (SQL-)Parameter

Bernhard Geyer 30. Mär 2008 18:53

Re: Abfrage von Datum + Uhrzeit mit ADO
 
Bei Access sollte man auf jedenfall parameter verwenden. Ansonsten ist je nach Zugriffsweg (ADO/DAO/ODBC) die nötige Formatierung des Datumsstrings unterschiedliche und auch sonst ein Glücksspiel.

sx2008 30. Mär 2008 20:00

Re: Abfrage von Datum + Uhrzeit mit ADO
 
Es gibt auf noch den Trick, das Datum als Flieskommazahl anzugeben:
SQL-Code:
SELECT * FROM Tabelle WHERE Datumfeld=32378.5   // Irgend ein Tag um 12 Uhr
"Zufällig" haben Delphi & Access hier die gleiche Zeitrechnung.

Ich empfehle aber auch, die Parameter zu verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:36 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