Help calling stored functions
Posted: Mon 16 Jun 2014 09:53
Hello,
Prior to version 6.3.6 (in my case it was V4.50.19) we were used to use TSQLDataset to call all of our functions (functions are packaged).
With the new version when we try this, we always get the "PLS-00306 wrong number or types of arguments" error.
Reading through the forums we discovered the from some version on, we're not be able to use these componentes anymore and that the code should be changed to use TSQLStoredProc instead.
The problem is that this component is many times slower the the preceding one. A call that usually takes less than 50ms to execute, can reach 300-600ms.
I read somewhere that this is most probably due to the metadata queries and that it's adviced to use TSQLQuery component for the same purpose. The problem is that with this component i'm not able to call stored functions wrapped in a block like 'begin :RESULT:=SOMEFUNCTION; end;' or i'm not able to correctly set it out.
I searched through the forum but i wasn't able to find anything.
Which approach should i take for this issue? is there anything describing the use, limits and advantages of each 'TSQL' component when using devart drivers?
Consider that our applications exposes a lot of APIs through functions in packages and the most of the work is done by calling those functions.
dbexpress for oracle v6.3.6 and XE4 update1 on 32but environment
thanks in advance
Prior to version 6.3.6 (in my case it was V4.50.19) we were used to use TSQLDataset to call all of our functions (functions are packaged).
With the new version when we try this, we always get the "PLS-00306 wrong number or types of arguments" error.
Reading through the forums we discovered the from some version on, we're not be able to use these componentes anymore and that the code should be changed to use TSQLStoredProc instead.
The problem is that this component is many times slower the the preceding one. A call that usually takes less than 50ms to execute, can reach 300-600ms.
I read somewhere that this is most probably due to the metadata queries and that it's adviced to use TSQLQuery component for the same purpose. The problem is that with this component i'm not able to call stored functions wrapped in a block like 'begin :RESULT:=SOMEFUNCTION; end;' or i'm not able to correctly set it out.
I searched through the forum but i wasn't able to find anything.
Which approach should i take for this issue? is there anything describing the use, limits and advantages of each 'TSQL' component when using devart drivers?
Consider that our applications exposes a lot of APIs through functions in packages and the most of the work is done by calling those functions.
dbexpress for oracle v6.3.6 and XE4 update1 on 32but environment
thanks in advance