Subject | Re: [firebird-support] Problem after alter stored procedures in ISQL FireBird 1.5.6. |
---|---|
Author | Helen Borrie |
Post date | 2011-02-02T10:03:54Z |
At 10:22 PM 2/02/2011, you wrote:
I don't have time to explain it all but, until Fb 1.5, Fb and InterBase had a long-time legacy bug that caused the parameters to be "shuffled". Many API wrappers, including IBObjects, reshuffled them into correct order before passing them, to correct this problem.
Then, the old bug was fixed in Fb1.5 and potentially broke a lot of applications. So a parameter was introduced in firebird.conf, whereby you could make the engine revert to the legacy bad behaviour to avoid that breakage, until your applications were brought up to date. The parameter is OldParameterOrdering, value 0 (= off) by default. Change it 1 to turn in on. Stop and restart Firebird afterwards.
./heLen
>When I use scripts in 'isql' to create / recreate stored procedures, the input parameters are in bad order and the application using this stored procedure report error.This is a bit complicated! isql is actually "right" (which makes it wrong for your application) while IBExpert is making an adjustment prior to submitting your code, that makes it "right" for your application.
>
>In script I first create empty procedure, next drop this procedure, next I again create empty procedure, finally in other script I use 'create or alter' appropriate body of procedure. All for nothing :(
>
>But when I use IBExpert to compile procedure the order is ok and everything work.
>
>What can I do or what is wrong in use 'isql' ?
I don't have time to explain it all but, until Fb 1.5, Fb and InterBase had a long-time legacy bug that caused the parameters to be "shuffled". Many API wrappers, including IBObjects, reshuffled them into correct order before passing them, to correct this problem.
Then, the old bug was fixed in Fb1.5 and potentially broke a lot of applications. So a parameter was introduced in firebird.conf, whereby you could make the engine revert to the legacy bad behaviour to avoid that breakage, until your applications were brought up to date. The parameter is OldParameterOrdering, value 0 (= off) by default. Change it 1 to turn in on. Stop and restart Firebird afterwards.
./heLen