Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Vreme u DBGridu prikazuje kao 30.12.1899. a u Access-u je korektno

[es] :: Pascal / Delphi / Kylix :: Vreme u DBGridu prikazuje kao 30.12.1899. a u Access-u je korektno

[ Pregleda: 3146 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ojler
Dejan Cvijetić

Član broj: 177921
Poruke: 21
*.ptt.yu.



Profil

icon Vreme u DBGridu prikazuje kao 30.12.1899. a u Access-u je korektno23.04.2008. u 11:14 - pre 194 meseci
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!
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Vreme u DBGridu prikazuje kao 30.12.1899. a u Access-u je korektno23.04.2008. u 15:10 - pre 194 meseci
> 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'.
 
Odgovor na temu

Ojler
Dejan Cvijetić

Član broj: 177921
Poruke: 21
*.ptt.yu.



Profil

icon Re: Vreme u DBGridu prikazuje kao 30.12.1899. a u Access-u je korektno23.04.2008. u 20:36 - pre 194 meseci
Hvala, Savkicu! Resio sam problem. Samo u design mode-u postavim za polje vreme iz ADOZakazivanja njegov displayformat na hh:nn i radi!!!
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Vreme u DBGridu prikazuje kao 30.12.1899. a u Access-u je korektno

[ Pregleda: 3146 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.