Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Client/Server  apelare procedu...
 apelare procedura stocata din alta procedura stocata - firebird
 
 4/13/2009 3:38:32 PM
User is offlineAdrian Gerlan
581 posts
1st




apelare procedura stocata din alta procedura stocata - firebird
 (N/A) Modified By Adrian Gerlan  on 4/13/2009 3:39:03 PM)

Am o tabela pentru evidenta orelor/minutelor consumate pe diferite lucrari. campul pentru ore/minute este de tip N(5.2). Introducerea se face oo.mm (oo = ore, mm = minute, unde mm betw(0,59)). Cand am nevoie sa fac suma pe acest camp in VFP folosesc urmatoarea functie:

PARAMETERS lpSecn, lpOren, lpStil

*** conversie secunde in ore,minute si viceversa

IF lpStil = 1

* varianta lunga format hh.mmss

lnSecR = INT(lpOren)*3600 + INT((lpOren - (INT(lpOren)*3600)/3600)*100)*60 + (lpOren*100 - INT(lpOren*100))*100

lnOreR = INT(lpSecn/3600) + INT((lpSecn/3600 - INT(lpSecn/3600))*60)/100 + (lpSecn/60 - INT(lpSecn/60))*60/100/100

ELSE

* varianta scurta format hh.mm

lnSecR = INT(lpOren)*3600 + (lpOren - INT(lpOren))*100*60

lnOreR = INT(lpSecn/3600) + ((lpSecn/3600) - INT(lpSecn/3600))*60/100

ENDIF

* se verifica cu formula : ? stoh(stoh(0,hh.mmss,1),0,1) = hh.mmss

DO case

CASE lpSecn # 0 AND lpOren# 0

RETURN 0

CASE lpSecn # 0 AND lpOren= 0

RETURN lnOreR

CASE lpSecn = 0 AND lpOren# 0

RETURN lnSecR

CASE lpSecn = 0 AND lpOren= 0

RETURN 0

endcase

Am adaugat aceasta functie si in firebird sub forma de procedura stocata, dar .. nu stiu cum sa o apelez in cadrul unui select din corpul altei proceduri stocate.

Se poate face asta ?

 


AdiG
 4/13/2009 5:52:02 PM
User is offlinecostin_mentor
492 posts
www.accessoft.ro
2nd




Re: apelare procedura stocata din alta procedura stocata - firebird
 (N/A)
ai procedura stocata sp_proc1(parametru1,parametru2,parametru3) care iti returneaza un camp numit sa spunem nrsecunde (asta e functia ta din vfp)

Acum , pentru a apela in alta procedura stocata din firebird procedura sp_proc1 vei proceda :


select nrsecunde[,optional alte campuri returnate ] from sp_proc1(par1,par2,par3) [optional clauza where] into :ovariabilaDefinitaInProcedura ;
 4/14/2009 12:25:45 AM
User is offlineAdrian Gerlan
581 posts
1st




Re: apelare procedura stocata din alta procedura stocata - firebird
 (N/A)

eu ma gandeam la ceva de genul:

select camp1, camp2, sum(sp_proc1(par1,par2,par3)) from tabela....

 


AdiG
 4/14/2009 8:28:58 AM
User is offlinecostin_mentor
492 posts
www.accessoft.ro
2nd




Re: apelare procedura stocata din alta procedura stocata - firebird
 (N/A) Modified By costin_mentor  on 4/14/2009 8:32:49 AM)
varianta de mai sus(a mea) merge daca select din procedura returneaza un singur set de valori .

pentru varianta cu mai multe seturi de valori folosesti:

for nrsecunde[,optional alte campuri returnate ] from sp_proc1(par1,par2,par3) [optional clauza where] into :ovariabilaDefinitaInProcedura[,optional alte variabile] do

begin

-... instructiuni psql

end

varianta ta de mai sus merge si ea tot in cazul in care procedura returneaza un singur set de valori(si returneaza la tine unul singur):
select camp1, camp2, (select sum(nrsecunde) from sp_proc1(par1,par2,par3) [clauza where] ) as sumameadorita from tabela....
  Visual FoxPro  Client/Server  apelare procedu...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement