Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Použití SRF funkcí v jazyce Pl/pgSQL při návrhu plánovacích funkcí

lzap
lzap (neregistrovaný)
23. 9. 2003 9:03 Nový

Vyborny clanek

celé vlákno

Skvele!

Yenya
Yenya (neregistrovaný)
23. 9. 2003 10:07 Nový

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

Pavel Stěhule
Pavel Stěhule (neregistrovaný)
23. 9. 2003 11:03 Nový

Re: Zrovna jsem presne toto psal

celé vlákno

Kdyz 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 :->

Yenya
Yenya (neregistrovaný)
25. 9. 2003 11:34 Nový

Re: Zrovna jsem presne toto psal

celé vlákno

Ale 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

Pavel
Pavel (neregistrovaný)
25. 9. 2003 20:01 Nový

Re: Zrovna jsem presne toto psal

celé vlákno

Pochopil 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. :->

Pavel
Pavel (neregistrovaný)
25. 9. 2003 20:06 Nový

Re: Zrovna jsem presne toto psal

celé vlákno

Jeste si to po sobe precist :-(. Presne naopak, napred jsem mel AddWDay a pak teprv AddWDays

Zasílat nově přidané příspěvky e-mailem