[ stefoza @ 08.03.2006. 10:29 ] @
Pozdrav
Problem: treba iz PHP da pozovem jednu SP, ali ne radi sa select * from SP(arg1,arg2) vec samo sa execute procedure SP(arg1,arg2)... Sa select mi ne vraca vrednosti nikakve, svugde sam trazio i svi kazu da moram da stavim jedan suspend u SP da bi mi radilo sa PHP...
E sad pravo pitanje:
Ovo bi trebalo da stavim
====
CREATE PROCEDURE GET_USERID_SEL (
USER VARCHAR(40),
PASS VARCHAR(40)
)
RETURNS (
USER_ID INTEGER)
AS
BEGIN
EXECUTE PROCEDURE GET_USERID(USER, PASS) RETURNING_VALUES USER_ID;
SUSPEND;
END;
====
GET_USERID je SP koja radi kad je pozovem sa execute procedure...
Medjutim problem je sledeci, kad pocnem da pisem gorepomenuti SP dodjem do
EXECUTE PROCEDURE GET_USERID(USER, PASS) RETURNING_VALUES USER_ID;
izbaci mi u konzolu:
Statement failed, SQLCODE = -104

Dynamic SQL Error
-SQL error code = -104
-Unexpected end of command
====
Nov sam sa firebirdom/interbaseom, a ni ne zelim jako da se upustam u to (dovoljan mi je mysql) samo zelim da napravim u PHP to sto moram. Gde je greska?
Nadam se da sam jasno izlozio problem.
[ galisnik @ 08.03.2006. 22:29 ] @
Probaj sa:
EXECUTE PROCEDURE GET_USERID(:USER, :PASS) RETURNING_VALUES :USER_ID;

(ovaj dio pišem jer "vičem" previše velikim slovima, a mrzi me da prepravljam sql iskaz)
[ stefoza @ 09.03.2006. 08:51 ] @
Resio
Problem je bio u tome sto ISQL trazi da dva terminatora budu razlicita. Znaci on kad unutar SP naidje na ; onda misli da je kraj :)
To se resava tako sto na pocetak dodamo
set term ^;
create procedure....
...
...
end ^
set term ;^
Nadam se da sam nekome ustedeo par sati guglanja, i pola perike :)
[ mbabuskov @ 29.05.2006. 11:17 ] @
Pa koristi neki alat umesto ISQL-a i neces imati tih problema.

Recimo, FlameRobin ti kreira skriptove koji imaju SET TERM, tako da mozes da ih copy/paste u isql ako bas moras iz njega da radis.