Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Geburtstagselektion funktioniert nicht (https://www.delphipraxis.net/16518-geburtstagselektion-funktioniert-nicht.html)

X21Carsten 18. Feb 2004 13:53


Geburtstagselektion funktioniert nicht
 
Hallo,

ich habe ein Programm in dem ich eine Geburtstagsselektion aufrufen möchte, wer heute Geburtag hat. Ich benutze Delphi 7 und eine Access Datenbank.

Ich benutze folgenden Befehl um die Datenbank abzufragen:

select Nummer, Vorname, Name, Geburtsdatum, Tel_privat, Mobil_privat from Mandanten where (((Geburtsdatum) like '18.02.????'))

wenn ich den Befehl in Access direkt eingebe kommen die gesuchten Datensätze.

aber an Delphi kommt nix zurück!!! Wenn ich den Befehl aber in Delphi abändere auf selcet * from Mandanten zum Beipiel, werden Daten in Delphi ausgegeben. Also es muss an dem SQL-Befehl liegen.

Hat jemand eine Idee woran es liegen könnte?

Robert_G 18. Feb 2004 14:11

Re: Geburtstagselektion funktioniert nicht
 
Erstens: Könntest du bitte dein SQL-Statement in SQL-Tags setzen ? (
Einfach Beitrag editieren, Vor der Abfrage auf den SQL-Button drücken und am Ende nochmal)

zum Problem: Sieht nach implizierter Datumsumwandlung aus.


Auf die Art dürfte MS Jet keine Möglichkeit haben, das Datum falsch zu interpretieren:
Delphi-Quellcode:
With Query Do
Begin
  SQL.Text :=
    'SELECT Nummer,' + #10 +
    '      Vorname,' + #10 +
    '      Name,' + #10 +
    '      Geburtsdatum,' + #10 +
    '      Tel_privat,' + #10 +
    '      Mobil_privat' + #10 +
    'FROM  Mandanten' + #10 +
    'WHERE (((Geburtsdatum) = :i_Date))';
  Prepared := True;
  Parameters.ParamByName('i_Date').Value := SysUtils.Date;
  Open;
END;
Nachtrag: War wohl ein bisschen knapp an Infos...
SysUtils.Date enthält das Datum der WindowsSystemzeit. Es enthält keine Uhrzeit und sollte deshalb dem Wert entsprechen, den ein normales Datum in Access/MS Jet hat.

X21Carsten 19. Feb 2004 10:45

Re: Geburtstagselektion funktioniert nicht
 
@GeorgeWNewbie:

das bringt ja nur die Werte von heute also 19.02.2004. Was ist mit denen die am 19.02.1986 oder 19.02.1950 Geburtstag haben? Was muss ich da noch abändern? ist i-Date ein System wert?

Robert_G 19. Feb 2004 11:06

Re: Geburtstagselektion funktioniert nicht
 
:wall:
Natürlich! (Ich hatte mir deinen Post nicht genau genug durchgelesen :oops: )
Da musst du dich an Funktionen von MS Jet halten ...
Day(IrgendeinDate) müsste dir den Tag geben Month(IrgendeinDate) den Monat:
Delphi-Quellcode:
Var
  Day, Month, Year :Word;
Begin
  ...
  With Query DO
  Begin
     SQL.Text :=
      'SELECT Nummer,' + #10 +
      '      Vorname,' + #10 +
      '      Name,' + #10 +
      '      Geburtsdatum,' + #10 +
      '      Tel_privat,' + #10 +
      '      Mobil_privat' + #10 +
      'FROM  Mandanten' + #10 +
      'WHERE Day(Geburtsdatum) = :i_Day And' + #10 +
      '      Month(Geburtsdatum) = :i_Month';
    Prepared := True;
    DecodeDate(Now, Year, Month, Day);
    Parameters.ParamByName('i_Day').Value := Day;
    Parameters.ParamByName('i_Month').Value := Month;
    Open;
 
    ...
    While Not Eof do
    Begin
      ...
      Next;
    End;
  End;

X21Carsten 19. Feb 2004 11:13

Re: Geburtstagselektion funktioniert nicht
 
wahnsinn! du bist genial! Es geht! Vielen lieben Dank!!!!


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