![]() |
SQL-Abfrage mit Datum
Was könnte hieran falsch sein?
Delphi-Quellcode:
datum ist eine Variable vom Typ TDate!
sql.add('SELECT COUNT(*) AS belegt FROM tabelle.db WHERE anreise<= ' + QuotedStr(datum.AsDate) + ' AND abreise> ' + QuotedStr(datum.AsDate));
anreise & abreise sind in der Paradox7-Tabelle von Typ Datum! Es kommt ein Fehler in der Art: Record, Objekt oder Klassentyp erforderlich |
Re: SQL-Abfrage mit Datum
Der Teil ".AsDate" ist falsch.
So etwas ginge nur, wenn "datum" ein Objekt oder ein Record oder ein Klassenreferenz wäre, das/der/die eine Eigenschaft "AsDate" hat. Der Typ TDate hat so etwas aber nicht, sondern man muss auf ihn mit der Funktion "DateToStr" zugreifen. Deine Zeile müsste lauten:
Code:
Ob der Aufruf von QuotedStr genau das richtige Ergebnis erzeugt, habe ich jetzt nicht überprüft, aber das sollte schon stimmen.
sql.add('SELECT COUNT(*) AS belegt FROM tabelle.db WHERE anreise<= ' + QuotedStr(DateToStr(datum)) + ' AND abreise> ' + QuotedStr(DateToStr(datum)));
Viel Erfolg Urs |
Re: SQL-Abfrage mit Datum
Sicherer, wenn auch auf den ersten Blick unbequemer, ist die Verwendung von Parametern. Mit dem Konstrukt:
Delphi-Quellcode:
sind die tollsten Probleme vorprogrammiert, sobald das auf Client/Server läuft und auf Client und Server unterschiedliche Datumsformate eingestellt sind - dann geht es einfach nur nach hinten los.
SQL.text := 'SELECT * FROM Bla WHERE '+QuotedStr(DateToStr(DatumsVariable));
Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 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