![]() |
Datenbank: Access • Zugriff über: ADO
SQL-Abfrage mit Zeiten
Hi!
Ich brauche von meiner Tabelle Daten und filtere diese nach Datum/Uhrzeit. Da die Werte flexibel sind und die Abfrage auch auf Systemen mit anderem Datumsformat funktionieren muss, müssen also Parameter her. q: TAdoQuery; Geht und liefert Ergebnis:
SQL-Code:
Geht nicht (Fehler: Typen unverträglich):
q.SQL.Add('SELECT * FROM T_Termin WHERE (dtEinblendZeit>1)');
SQL-Code:
Geht auch nicht (Ohne Fehlermeldung, liefert kein Ergebnis):
q.SQL.Add('SELECT * FROM T_Termin WHERE (dtEinblendZeit>:Ein)');
q.Parameters.ParamByName('Ein').Value := 1;
SQL-Code:
q.SQL.Add('SELECT * FROM T_Termin WHERE (dtEinblendZeit>:Ein)');
with q.Parameters.AddParameter do begin DataType := ftDateTime; Direction := pdInput; Value := 1;//floor(MonthCalendar1.Date); Name := 'Ein'; end; |
Re: SQL-Abfrage mit Zeiten
Setzte mal den Parametertyp
|
Re: SQL-Abfrage mit Zeiten
Funktioniert.
SQL-Code:
Wenn mir jetzt noch einer Erklären könnte, warum
q.Parameters.ParamByName('Ein').DataType := ftDateTime;
q.Parameters.ParamByName('Ein').Value := 1//floor(MonthCalendar1.Date);;
SQL-Code:
nicht funktioniert, dann wäre Spitze!
q.SQL.Add('SELECT * FROM T_Termin WHERE (dtEinblendZeit>:Ein)');
with q.Parameters.AddParameter do begin DataType := ftDateTime; Direction := pdInput; Value := 1;//floor(MonthCalendar1.Date); Name := 'Ein'; end; Danke soweit schonmal für den Tip, damit komme ich echt weiter ;) |
Re: SQL-Abfrage mit Zeiten
Weiß nicht, warum was nicht funktioniert. Das dürfte jedenfalls funktionieren :
SQL-Code:
Mehr braucht man nicht und man sieht auch gleich, um was es geht. Der Befehl zum abschicken der Abfrage (hier das open) könnte unter Access auch anders heißen.
q.Parameters.ParamByName('Ein').AsDateTime := floor(MonthCalendar1.Date);
q.SQL.SelectSQL.Text('SELECT * FROM T_Termin WHERE (dtEinblendZeit>:Ein)'); q.Open; |
Re: SQL-Abfrage mit Zeiten
Das mit dem Open stimmt so wie du es gesagt hast und deine Methode mit "asDateTime" ist auch praktisch und erspart Tipparbeit. Vor allem ist mir das sicherer als "Variant".
Wie gesagt, damit funktiniert es. War halt bloß die Frage warum das mit AddParam nicht ging... Naja egal, Haupsache dass. Vielen Dank für die Antworten! |
Re: SQL-Abfrage mit Zeiten
Im Beispiel das "Parameters" ist bestimmt auch überflüssig. Gut wenn es so geht. Wichtig ist immer, daß man auch versteht warum. Da Du das ja jetzt verstehst ist es IMHO unnötig genau zu wissen, woran es liegt, daß etwas nicht geht. :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:41 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 by Thomas Breitkreuz