wywolanie udfa z udfa
Sowiecki Agent - 11-05-2007 12:33
wywolanie udfa z udfa
[msSQL 2005] Czy jest mozliwosc <obejscia> wywolania w jakikolwiek sposob udfa z udfa , lub procedure z udfa ? Wywolalbym widok, a widoku udfa jak radzil Wloochacz, ale niestety udf wymaga parametrow. A chcialbym unikac procedur na poziomie programu ze wzgledu na trudnosci przy ewentualnej zmianie silnika bazy (chocby roznica w nazwach zmiennych MSSQL <> Firebird tj. w pierwszym przypadku poprzezdanie zmiennych znakiem malpy na co nie pozwala Firebird)
pozdrawiam
-- http://www.niesfornazyta.pl/ Pierwszy stacjonarny czytnik for typu phpBB/phpBBbyPrzemo (windows/linux) Od dziś możesz korzystać z fora tak jak z usenetu !
wloochacz - 11-05-2007 12:33
> Czy jest mozliwosc <obejscia> wywolania w jakikolwiek sposob udfa z udfa > , lub procedure z udfa ? Wywolalbym widok, a widoku udfa jak radzil > Wloochacz, ale niestety udf wymaga parametrow. A chcialbym unikac > procedur na poziomie programu ze wzgledu na trudnosci przy ewentualnej > zmianie silnika bazy (chocby roznica w nazwach zmiennych MSSQL <> > Firebird tj. w pierwszym przypadku poprzezdanie zmiennych znakiem malpy > na co nie pozwala Firebird) Generalnie możesz bez problemu, pod warunkiem że UDF/Procedura nie będzie zawierać funkcji niedeterministycznych i dlatego właśnie podałem ten paten z widokiem.
A co konkretnie chcesz uzyskać, bo jakoś mętnie tłumaczysz - przynajmniej ja to tak widzę...
-- wloochacz
Sowiecki Agent - 11-05-2007 12:33
wloochacz napisał(a): >> Czy jest mozliwosc <obejscia> wywolania w jakikolwiek sposob udfa z >> udfa , lub procedure z udfa ? Wywolalbym widok, a widoku udfa jak >> radzil Wloochacz, ale niestety udf wymaga parametrow. A chcialbym >> unikac procedur na poziomie programu ze wzgledu na trudnosci przy >> ewentualnej zmianie silnika bazy (chocby roznica w nazwach zmiennych >> MSSQL <> Firebird tj. w pierwszym przypadku poprzezdanie zmiennych >> znakiem malpy na co nie pozwala Firebird) > Generalnie możesz bez problemu, pod warunkiem że UDF/Procedura nie > będzie zawierać funkcji niedeterministycznych i dlatego właśnie podałem > ten paten z widokiem. > > A co konkretnie chcesz uzyskać, bo jakoś mętnie tłumaczysz - > przynajmniej ja to tak widzę... >
podczas wywolywania mojego udfa ktory wewnatrz wywoluje innego mojego udfa ktory wewnatrz wywoluje pewna moja procedure otrzymuje komunikat:
"Only functions and extended stored procedures can be executed from within a function. (1,011 sec)"
GetDAte przekazuje w pierwszym udfie jako parametr wiec dalej to przechodzi jako sztywna zmienna , nie korzystam ztej funkjci wiecej.
W drugim udfie korzystam z funkcji coalesce oraz sum w zapytaniach, czy to jest sprawca?
pozdrawiam
-- http://www.niesfornazyta.pl/ Pierwszy stacjonarny czytnik for typu phpBB/phpBBbyPrzemo (windows/linux) Od dziś możesz korzystać z fora tak jak z usenetu !
Sowiecki Agent - 11-05-2007 12:33
Sowiecki Agent napisał(a): > wloochacz napisał(a): >>> Czy jest mozliwosc <obejscia> wywolania w jakikolwiek sposob udfa z >>> udfa , lub procedure z udfa ? Wywolalbym widok, a widoku udfa jak >>> radzil Wloochacz, ale niestety udf wymaga parametrow. A chcialbym >>> unikac procedur na poziomie programu ze wzgledu na trudnosci przy >>> ewentualnej zmianie silnika bazy (chocby roznica w nazwach zmiennych >>> MSSQL <> Firebird tj. w pierwszym przypadku poprzezdanie zmiennych >>> znakiem malpy na co nie pozwala Firebird) >> Generalnie możesz bez problemu, pod warunkiem że UDF/Procedura nie >> będzie zawierać funkcji niedeterministycznych i dlatego właśnie >> podałem ten paten z widokiem. >> >> A co konkretnie chcesz uzyskać, bo jakoś mętnie tłumaczysz - >> przynajmniej ja to tak widzę... >> > > podczas wywolywania mojego udfa ktory wewnatrz wywoluje innego mojego > udfa ktory wewnatrz wywoluje pewna moja procedure otrzymuje komunikat: > > "Only functions and extended stored procedures can be executed from > within a function. > (1,011 sec)" > > GetDAte przekazuje w pierwszym udfie jako parametr wiec dalej to > przechodzi jako sztywna zmienna , nie korzystam ztej funkjci wiecej. > > W drugim udfie korzystam z funkcji coalesce oraz sum w zapytaniach, czy > to jest sprawca?
dodam ze w kazdym z 3 'wynalazkow' sa petle. Ale to chyba znaczenia nie ma ...
-- http://www.niesfornazyta.pl/ Pierwszy stacjonarny czytnik for typu phpBB/phpBBbyPrzemo (windows/linux) Od dziś możesz korzystać z fora tak jak z usenetu !
Sowiecki Agent - 11-05-2007 12:33
wlasnie zakomentowalem procedure wywolana w drugim udfie:
/*
exec procedura @zmienna1, @zmienna2, @zmienna_wynik OUT; */ i wowczas komunikatu ni eotrzymalem, procedura nie korzsta z zadnych funkcji systemowych typu getDate a wywolana z poziomu edytora sql czy z poziomu programu (bezposrednio nie jako skaldowa innej funkjci) dziala.
Co sie dzieje?
-- http://www.niesfornazyta.pl/ Pierwszy stacjonarny czytnik for typu phpBB/phpBBbyPrzemo (windows/linux) Od dziś możesz korzystać z fora tak jak z usenetu !
wloochacz - 11-05-2007 12:33
[ciach] >> A co konkretnie chcesz uzyskać, bo jakoś mętnie tłumaczysz - >> przynajmniej ja to tak widzę... > > podczas wywolywania mojego udfa ktory wewnatrz wywoluje innego mojego > udfa ktory wewnatrz wywoluje pewna moja procedure otrzymuje komunikat: > > "Only functions and extended stored procedures can be executed from > within a function. > (1,011 sec)" eee... niedokładnie się wyraziłem ;-) Z UDF'a możesz wywołać tylko innego UDF'a i extended stored procedures, klasycznych stored procek się NIE DA wywołac z UDF'a
Obejście: Przepisz kod SQL z procedury do UDF'a (np. o nazwie uf_procedura), a w procedurze "procedura" wykonaj UDF'a uf_procedura. Ta gimnastyka po to, żeby zachować kompatybilność i nie mieć tego samego kodu w dwóch różnych miejscach...
-- wloochacz
Sowiecki Agent - 11-05-2007 12:33
>> "Only functions and extended stored procedures can be executed from >> within a function. >> (1,011 sec)" > eee... niedokładnie się wyraziłem ;-) > Z UDF'a możesz wywołać tylko innego UDF'a i extended stored procedures, > klasycznych stored procek się NIE DA wywołac z UDF'a > > Obejście: > Przepisz kod SQL z procedury do UDF'a (np. o nazwie uf_procedura), a w > procedurze "procedura" wykonaj UDF'a uf_procedura. > Ta gimnastyka po to, żeby zachować kompatybilność i nie mieć tego samego > kodu w dwóch różnych miejscach...
aj juz za pozno, przepisalem na udfa :) ale gdzies przedobrzylem i sie serwer podcas wykonania zawiesil, zapomnialem warunku postawic w petli while :) ok to nieistotne.. tak czy siak dzieki.
P.
-- http://www.niesfornazyta.pl/ Pierwszy stacjonarny czytnik for typu phpBB/phpBBbyPrzemo (windows/linux) Od dziś możesz korzystać z fora tak jak z usenetu !
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[Flash] Wywolanie klatki po okreslonym czasie bezruchu kursora
wywolanie dosc zlozonego polecenia w systemie
[MSSQL] reczne wywolanie generatora id
wywolanie procedury w trigerze
=?iso-8859-2?q?[apache]_restart_za_pomoc=B1_cron'a_i_too_many_open_files? =
[MySQL] Czy =?ISO-8859-2?Q?m=F3g=B3by_mi_kto=B6_pom=F3c_?==?ISO-8859-2?Q?przy_tym_zapytaniu_=3F?=
MS SQL 2000 i Windows NT serwer
Clipart z autem - poszukiwania
Prośba o ocenę
Mapowanie w hibernate
zanotowane.pldoc.pisz.plpdf.pisz.ploefg.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|