Forum Delphi.cz

Delphi => Obecné => Téma založeno: jtfcobra 07-03-2013, 13:11:47

Název: Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: jtfcobra 07-03-2013, 13:11:47
Prosim o radu jak zjistit kolik dní ma mesic ?

Pouzivam to takto pak to nacita z SQL....ale pak to haze chybu kdyz neni...
Kód: Delphi [Vybrat]
  1.    begin nacistdledatumu('1'+label38.Caption); end;
  2.    begin nacistdledatumu('2'+label38.Caption); end;
  3.    begin nacistdledatumu('3'+label38.Caption); end;
  4.    begin nacistdledatumu('4'+label38.Caption); end;
  5.    begin nacistdledatumu('5'+label38.Caption); end;
  6.    begin nacistdledatumu('6'+label38.Caption); end;
  7.    begin nacistdledatumu('7'+label38.Caption); end;
  8.    begin nacistdledatumu('8'+label38.Caption); end;
  9.    begin nacistdledatumu('9'+label38.Caption); end;
  10.    begin nacistdledatumu('10'+label38.Caption); end;
  11.    begin nacistdledatumu('11'+label38.Caption); end;
  12.    begin nacistdledatumu('12'+label38.Caption); end;
  13.    begin nacistdledatumu('13'+label38.Caption); end;
  14.    begin nacistdledatumu('14'+label38.Caption); end;
  15.    begin nacistdledatumu('15'+label38.Caption); end;
  16.    begin nacistdledatumu('16'+label38.Caption); end;
  17.    begin nacistdledatumu('17'+label38.Caption); end;
  18.    begin nacistdledatumu('18'+label38.Caption); end;
  19.    begin nacistdledatumu('19'+label38.Caption); end;
  20.    begin nacistdledatumu('20'+label38.Caption); end;
  21.    begin nacistdledatumu('21'+label38.Caption); end;
  22.    begin nacistdledatumu('22'+label38.Caption); end;
  23.    begin nacistdledatumu('23'+label38.Caption); end;
  24.    begin nacistdledatumu('24'+label38.Caption); end;
  25.    begin nacistdledatumu('25'+label38.Caption); end;
  26.    begin nacistdledatumu('26'+label38.Caption); end;
  27.    begin nacistdledatumu('27'+label38.Caption); end;
  28.    begin nacistdledatumu('28'+label38.Caption); end;
  29.    begin nacistdledatumu('29'+label38.Caption); end;
  30.    begin nacistdledatumu('30'+label38.Caption); end;
  31.    begin nacistdledatumu('31'+label38.Caption); end;
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: Ondřej Pokorný 07-03-2013, 13:13:11
http://www.delphibasics.co.uk/RTL.asp?Name=DaysInAMonth (http://www.delphibasics.co.uk/RTL.asp?Name=DaysInAMonth) ale google to umí i rychleji než já...
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: Mi.Chal. 07-03-2013, 13:33:39
ten kód je nějaký vtip? projít to cyklem ti přišlo moc jednoduchý?  :)
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: jtfcobra 07-03-2013, 13:47:12
Premyslim jak to udelat


uzivatele vybere

mesic a rok

a potrebuji zadat dotaz na sql

napr.

3.2013



1.3.2013
2.3.2013
atd...

ale nevim jak jednoduse napsat kod a zjistit pocet dni abych se nedotazoval na den ktery nexistuje a den ktery jeste nebyl... ....



Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: Mi.Chal. 07-03-2013, 13:55:48
spočítáš si první a poslední den v měsíci a do podmínky dáš třeba "where date between @prvni_den and @posledni_den". Nebo můžeš k prvnímu dni přičíst měsíc a odečíst den, tím dostaneš poslední den v měsíci. Ještě možná budeš muset pořešit problém s hodinami.
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: jtfcobra 07-03-2013, 14:00:12
Ja ukladam do databaze datum jako text  kvuli kompatibilite Windows 8 a Windows XP,atd...


muj datum je pak xx.xx.xxxx (1.3.2013)

v sql nacitam kazdy den pak zvlast napriklad
1.3.2013
2.3.2013
3.3.2013
atd

ale je to pak strasne pomale...
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: Ondřej Pokorný 07-03-2013, 14:05:53
Mi.Chal. ti to vysvětlil. ještě že nemusím používat tvoje programy  :o
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: jtfcobra 07-03-2013, 14:08:52
Kazdy se uci ne?.... ... 8)

Chystam se to predelat na datum ...ale az bude vic casu na testovani....
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: Mi.Chal. 07-03-2013, 14:15:03
Ja ukladam do databaze datum jako text  kvuli kompatibilite Windows 8 a Windows XP,atd...

ale je to pak strasne pomale...

to není kompatibilita, ale blbost :-). Použij databázový typ date(time), ten je na to dělaný. Navíc se stringem budeš mít problém s různými formáty data, takže si nic nevyřešil, ale přidal potenciální problémy.
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: jtfcobra 07-03-2013, 14:18:13
Zkusim to předělat ale ted nemohu rozdělat program mam na tom dost věcí co deně běží takže nejdřív musim otestovat...to až bude čas
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: Ondřej Pokorný 07-03-2013, 14:18:21
sorry, máš pravdu, ale ukládat datum, čísla a cokoliv jiného, co není string, jako string, to ti určitě žádná učebnice popř. nápověda neradí.

stejně tak nerozumím tomu výroku o kompatibilitě. viz rozdílné formátování datumu na systémech s různým jazykovým nastavením. vlastně si docílil pravého opaku - tu kompatibilitu si ztratil.
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: jtfcobra 07-03-2013, 14:20:29
ja vim ze je to chyba.... ale mate nekdo reseni na tu moji otazku?
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: Mi.Chal. 07-03-2013, 14:26:37
ja vim ze je to chyba.... ale mate nekdo reseni na tu moji otazku?

v tom tvém prasoformátu (jestli jsem ho pochopil správně) můžeš udělat where datum like '%.10.2013', kde 10 je měsíc a 2013 je rok. Prostě odignoruješ ten den. Ale stejně bys to měl předělat, tohle je špatný přístup.
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: jtfcobra 07-03-2013, 15:02:38
label38.caption:='%.3.2013';

login2.zquery1.SQL.Add ('select id,CisloFA,Datum,Castka,Dodavatel,Pridal from '+recepce.label37.Caption+' where Datum like '+label38.Caption+'');


ale nefunguje to...
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: Mi.Chal. 07-03-2013, 15:12:18
label38.caption:='%.3.2013';

login2.zquery1.SQL.Add ('select id,CisloFA,Datum,Castka,Dodavatel,Pridal from '+recepce.label37.Caption+' where Datum like '+label38.Caption+'');


ale nefunguje to...

se nedivím, musíš to dát do apostrofů ještě (v tom stringu je navíc zdvojit), něco jako

SQL.Add ('select id,CisloFA,Datum,Castka,Dodavatel,Pridal from '+recepce.label37.Caption+' where Datum like '''+label38.Caption+'''');

Jinak je to samozřejmě blbě, názvy db objektů bys asi neměl brát z UI a místo lepení stringů bys měl používat query s parametry
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: jtfcobra 07-03-2013, 15:23:05
super funguje to diky moc toto forum je super
Název: Re:Prosim o radu jak zjistit kolik dní ma mesic ?
Přispěvatel: Radek Červinka 07-03-2013, 21:58:28
ja vim ze je to chyba.... ale mate nekdo reseni na tu moji otazku?

Nechceš si nejdříve něco přečíst? Jeden známý např. napsal http://www.alza.cz/sql-pro-blbce-d398757.htm (http://www.alza.cz/sql-pro-blbce-d398757.htm), sice ten název ..., ale podobných příruček i zadarmo existuje více.