AGB  ·  Datenschutz  ·  Impressum  







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

SQL-Abfrage mit Zeiten

Ein Thema von berens · begonnen am 14. Nov 2006 · letzter Beitrag vom 14. Nov 2006
Antwort Antwort
berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#1

SQL-Abfrage mit Zeiten

  Alt 14. Nov 2006, 13:38
Datenbank: Access • Zugriff über: ADO
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:
q.SQL.Add('SELECT * FROM T_Termin WHERE (dtEinblendZeit>1)'); Geht nicht (Fehler: Typen unverträglich):
SQL-Code:
  q.SQL.Add('SELECT * FROM T_Termin WHERE (dtEinblendZeit>:Ein)');
  q.Parameters.ParamByName('Ein').Value := 1;
Geht auch nicht (Ohne Fehlermeldung, liefert kein Ergebnis):
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;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: SQL-Abfrage mit Zeiten

  Alt 14. Nov 2006, 14:39
Setzte mal den Parametertyp
Markus Kinzler
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: SQL-Abfrage mit Zeiten

  Alt 14. Nov 2006, 15:13
Funktioniert.

SQL-Code:
  q.Parameters.ParamByName('Ein').DataType := ftDateTime;
  q.Parameters.ParamByName('Ein').Value := 1//floor(MonthCalendar1.Date);;
Wenn mir jetzt noch einer Erklären könnte, warum
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;
nicht funktioniert, dann wäre Spitze!

Danke soweit schonmal für den Tip, damit komme ich echt weiter
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: SQL-Abfrage mit Zeiten

  Alt 14. Nov 2006, 15:53
Weiß nicht, warum was nicht funktioniert. Das dürfte jedenfalls funktionieren :

SQL-Code:
  q.Parameters.ParamByName('Ein').AsDateTime := floor(MonthCalendar1.Date);
  q.SQL.SelectSQL.Text('SELECT * FROM T_Termin WHERE (dtEinblendZeit>:Ein)');
  q.Open;
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: SQL-Abfrage mit Zeiten

  Alt 14. Nov 2006, 15:57
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!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: SQL-Abfrage mit Zeiten

  Alt 14. Nov 2006, 16:29
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:13 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