[ Ojler @ 23.04.2008. 11:14 ] @
Radim u Delphi-u sa Access-om i imam mali problem sa prikazivanjem u DBGridu polja Vreme. Tu mi prikazuje 30.12.1899. dok u samom Acces-u normalno prikazuje 8:00 ili slicno vreme. Vreme biram pomocu TimePicker-a. Imam sledece naredbe.

x:=TimeToStr(VremePiker.Time);
ADOZakazivanja.FieldByName('vreme').Value:=StrToTime(x);

A ako bih pisao direktno
ADOZakazivanja.FieldByName('vreme').Value:=VremePiker.Time;

u Access ce mi upisati i datum vreme, a onda u DBGridu vidim samo datum.
Kako ovo mogu da resim? Pretrazivao sam forum i help i nalazio nesto oko dekodiranja datuma i formatiranja, ali nisam uspevao.

Problem je samo da DBGrid ispravno procita vreme iz Access-a!
[ savkic @ 23.04.2008. 15:10 ] @
> Radim u Delphi-u sa Access-om i imam mali problem sa prikazivanjem u DBGridu polja Vreme. Tu mi prikazuje 30.12.1899. dok u samom
> Acces-u normalno prikazuje 8:00 ili slicno vreme. Vreme biram pomocu TimePicker-a. Imam sledece naredbe.

30.12.1899 je nulti datum za Delphi, što verovatno znači da je u bazi polje za taj red NULL.

> x:=TimeToStr(VremePiker.Time);
> ADOZakazivanja.FieldByName('vreme').Value:=StrToTime(x);

Ako koristiš .Value nema potrebe da posebno konvertuješ u string, datum ili nešto treće, pošto je to Variant dovoljno je samo dodeliti vrednost.
Preporučujem dodelu prema konkretnom tipu (AsInteger, AsString, AsDateTime...). Npr. ADOZakazivanja.FieldByName('vreme').AsDateTime := Now;

> ADOZakazivanja.FieldByName('vreme').Value:=VremePiker.Time;
> u Access ce mi upisati i datum vreme, a onda u DBGridu vidim samo datum.

Najpre da li tebi treba datum, vreme ili timestamp (datum i vreme), prema tome trebaš da odabereš odgovarajući tip polja u bazi.
Ako je u pitanju TIME, način ispisa najlakše da podesiš preko DisplayFormat od TFielda koji je povezan sa tim poljem. Npr. 'HH:MM:SS'.
[ Ojler @ 23.04.2008. 20:36 ] @
Hvala, Savkicu! Resio sam problem. Samo u design mode-u postavim za polje vreme iz ADOZakazivanja njegov displayformat na hh:nn i radi!!!