Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 2.603 pregleda

Najnovija ↓

problem sa datumima 23.03.2021. u 15:08 · pre 68 meseci #1
Stvarno sam poceo da sumnjam u sebe, odnosno jel uopce imam pojma o programiranju
glup sam ogranicen ili sta vec ali stvarno je frustrirajuce.

prost kod ali ne radi

procedure TVitalwert.Button8Click(Sender: TObject);
var
danasnjidatum,staridatum:Tdatetime;
begin
danasnjidatum:=now;
staridatum:=Vitalwert_Querydatum.Value;
if staridatum < danasnjidatum then Button4.Enabled:=false else Button4.Enabled:=true;
if staridatum < danasnjidatum then Button5.Enabled:=false else Button5.Enabled:=true;
end;

dakle iako je u mysql bazu unesen podatak kao datum i iako ga kao takvog pozivam
ne konvertujuci u stringove ili sta ja znam zbog formata (da nebi i to bio problem)
jednostavno kod ne radi. Svrha koda bi bila da onemoguci promjenu i brisanje podataka
koji su stariji od dana unosa.
Re: problem sa datumima 23.03.2021. u 15:41 · pre 68 meseci #2
Samo savjet kako da kraće pišeš:

Button4.Enabled := (staridatum < danasnjidatum);

A ovo sa datumima je vjerovatno problem u načinu kako mysql sprema datume. Nije to samo za mysql, svugje je to problem. Pogledaj šta dobiješ u .Value
Re: problem sa datumima 23.03.2021. u 16:44 · pre 68 meseci #3
Citat:
trimrd: Samo savjet kako da kraće pišeš:

Button4.Enabled := (staridatum < danasnjidatum);

A ovo sa datumima je vjerovatno problem u načinu kako mysql sprema datume. Nije to samo za mysql, svugje je to problem. Pogledaj šta dobiješ u .Value


Zbog toga kako mysql sprema datume sam se i oslonio na Value sto bi trebalo da znaci da prikaze datum bez obzira u kojem formatu ga spremio. Isao sam logikom da
kako ga god spremio trebalo bi da ga prepozna da je stariji od danas tj trenutnog datuma.
Re: problem sa datumima 23.03.2021. u 17:40 · pre 68 meseci #4
Da li property Value vraca TDateTime ili Variant?
Ubaci jedan ShowMessage(DateTimeToStr(StariDatum)) pa vidi sta kaze;
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: problem sa datumima 24.03.2021. u 15:08 · pre 68 meseci #5
Rjesio sam ja to "Nekako". Sve ja to nekako rjesim ali je stvarno frustrirajuce to kukicanje
odnosno po meni pisanje nepravilnog koda.
Predhodno sam rjesio na brzinu, pisuci slijedecu proceduru:

procedure TKarton_pacijenta.Ogranicenje_Ispravke_Starijih_Datuma;
var
danasnjidatum,staridatum:Tdatetime;
DatumText1,DatumText2:String;
begin
danasnjidatum:=now;
FormatDateTime('MM/DD/YYYY', danasnjidatum);
staridatum:=DMObrasci.Karton_Pacijenta_Querydatum.Value;
FormatDateTime('MM/DD/YYYY', staridatum);

DatumText1:= DateToStr(danasnjidatum);
DatumText2:= DateToStr(staridatum);

if DatumText1=DatumText2 then Button4.Enabled:=true else Button4.Enabled:=false;
if DatumText1=DatumText2 then Button5.Enabled:=true else Button5.Enabled:=false;

end;

Prije toga sve provjerio kako je upisano u bazu, formatirao datume i opet nista.

Po meni je glupost, da ne nabrajam dalje nacin na koji sam to rjesio, pretvarajuci datume u string.

Medjutim, ako se nadjes u prilici da trazis posao, ili da prodas izvorni kod onda je nemoguce
objasniti hrpu nelogicnosti i gluposti na koje si prinudjen da bi rjesio neki problem.




Re: problem sa datumima 24.03.2021. u 18:43 · pre 68 meseci #6
Cudna mi je ova situacija, to treba da bude poredenje double vrednosti, i to uvek radi. da nije neki kod menjao FPU setovanja (tipa, Set8087CW)?

Sta ti prikaze, ShowMessage(DateTimeToStr(stariDatum))?
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: problem sa datumima 26.03.2021. u 16:05 · pre 68 meseci #7
Po meni je najbolje vreme i datume upisivati kao string nekog formata koji je tebi pogodan za kasniju obradu. Pa ga tako snimaš i vadiš iz baze i uvek znaš na čemu si.
Re: problem sa datumima 29.03.2021. u 16:43 · pre 68 meseci #9
Nije najbolje iz razloga SQL upita. Ako se već ide tim pristupom, onda bolje ostaviti podatak u formatu baze i dodati polje (calculated) koje formatira datum na način koji želimo.
Re: problem sa datumima 30.03.2021. u 09:35 · pre 68 meseci #10
Gledam kod iz prvog posta na temi.
Jedino sto mi pada na pamet je ovaj red

Code:

  staridatum:=Vitalwert_Querydatum.Value;


Mislim da je uvek bolje pozvati eksplicitnu konverziju

Code:

  staridatum:=Vitalwert_Querydatum.AsDateTime;


Nikad ne znamo kako ce compiler prevesti variant vrednost, zato je (valjda) bolje da mu direktno kazemo STA da radi.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme