Skvele!
Názory k článku
Použití SRF funkcí v jazyce Pl/pgSQL při návrhu plánovacích funkcí
Zrovna jsem presne toto psal
celé vlákno... v PL/SQL. Akorat svatky jsem mel zadane jako
tabulku, protoze zrovna v te aplikaci mohou byt
i nektere "lokalni" nepracovni dny navic. Z toho
duvodu jsem se taky nemusel obtezovat Velikonocemi
- ty jsou v te tabulce take.
K vyse uvedenemu kodu: dospel jsem v podstate
k podobnemu vysledku, jen tam misto dvojiho
volani AddWDay() a smycky WHILE mam smycku
LOOP .. END LOOP a ten kod podobny Vasemu AddWDay()
tam mam jen jednou, takze nepotrebuju dalsi pomocnou
funkci.
-Yenya
Re: Zrovna jsem presne toto psal
celé vláknoKdyz si vygeneruji svatky na deset let dopredu, tak si tam mohu umistit i ty velikonoce. Ulozenim svatku do tabulky urcite urychlim vypocet. Presto funkce, ktera generuje svatky ma smysl - nemusi se tabulka svatku vypisovat rucne. Teoreticky vzato - bysme meli dojit ke stejnemu vysledku - tvaru funkce a preferovani WHILE je uz moje osobni deformace :->
Re: Zrovna jsem presne toto psal
celé vláknoAle ne - budto jsem to napsal nesrozumitelne, nebo jste me nepochopil. Jde o dve ortogonalni veci:
Prvni vec je, jestli mit svatky a velikonoce v tabulce nebo se je snazit pocitat. Tam jsem s Vami zajedno v tom, ze v tabulce je to rychlejsi, pomoci funkce je to elegantnejsi.
Druha vec (ktera ale s vyse uvedenym nesouvisi) je, ze kdyz funkci AddWDays napisete misto WHILE smycky pomoci LOOP .. END LOOP, tak tam nemusite mit dvakrat skoro ten stejny kod:
st := $1; ed := AddWDay(st,$2);
korekce := PocetStatnichSvatku(st, ed, ARRAY[6,0]);
Cili vlastne potom usetrite jedno volani funkce AddWDay() a tedy vubec funkci AddWDay() nemusite definovat a prislusny kod muzete napsat primo dovnitr funkce AddWDays(). Proto je v tomto pripade WHILE mene elegantni (s WHILE tam mate dvakrat skoro stejny kod, coz je skarede).
-Yenya
Re: Zrovna jsem presne toto psal
celé vláknoPochopil jsem to spravne :->. Kdybych nemel uz funkci AddWDays, tak bych to napsal, stejne jako ty, pomoci LOOPu. Jenze jsem uz ji mel - napred jsem si testoval jestli mi to spravne pocita bez svatku, tak mne nic nekopalo k tomu, bych dbal na eleganci. :->
Re: Zrovna jsem presne toto psal
celé vláknoJeste si to po sobe precist :-(. Presne naopak, napred jsem mel AddWDay a pak teprv AddWDays

