DateTimePicker aus Datenbank füllen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Sayawa
Beiträge: 13
Registriert: Do 26. Apr 2018, 15:15
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

DateTimePicker aus Datenbank füllen

Beitrag von Sayawa »

Hallo Zusammen,

ich fülle die Datenbank mit dem DateTimePicker mit dem folgenden Code:

Code: Alles auswählen

 
FrmConnectDB.SQLQuery1.ParamByName('datumangeschafft').AsString := Formatdatetime('yyyy.mm.dd', FrmEQStamm.DateTimePicker1.date);
 


Gspeichert ist er in der Datenbank im Format Jahr/Monat/Tag, im DateTimePicker ist es Tag/Monat/Jahr

Nun will ich das Datum bei einer Suchanfrage wieder in den DateTimePicker einlesen.

Versucht habe ich es mit:

Code: Alles auswählen

 
DateTimePicker1  := FrmConnectDB.SQLQuery1.ParamByName('datumangeschafft').AsString;
 


Allerdings bekomme ich dann die Fehlermeldung Error: Incompatible types: got "AnsiString" expected "TDateTimePicker".
Was in der Abfrage ist falsch?

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 258
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: DateTimePicker aus Datenbank füllen

Beitrag von h-elsner »

Der DateTime Picker will einen Wert als TDateTime. Du muss erst deinen String wieder in TDateTime umwandeln z.B. mit EncodeDate:
http://www.delphibasics.co.uk/RTL.asp?Name=EncodeDate

Gruß HE

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: DateTimePicker aus Datenbank füllen

Beitrag von Socke »

Du musst schon die Eigenschaft Date angeben; ansonsten wird das nichts; Vielliecht kannst du das Datum auch direkt als DateTime aus der Datenbank abfragen.

Code: Alles auswählen

DateTimePicker1.Date  := FrmConnectDB.SQLQuery1.ParamByName('datumangeschafft').AsDateTime;

Falls du in der Datenbank das Datum als String speicherst, muss du diesen selbst in ein DateTime wandlen (siehe Antwort von h-elsner).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Sayawa
Beiträge: 13
Registriert: Do 26. Apr 2018, 15:15
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: DateTimePicker aus Datenbank füllen

Beitrag von Sayawa »

Vielen Dank für die schnellen Antworten :)

Das ganze hat geklappt mit:

Code: Alles auswählen

 
DateTimePicker1.Date  := FrmConnectDB.SQLQuery1.FieldbyName('anschaffungsdatum').AsDateTime
 


Es musste auch FieldbyName statt ParambyName sein.

Antworten