how to call procedure complex parameter in UniDAC at orace

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
daizhicun
Posts: 109
Joined: Thu 21 Jan 2010 11:49

how to call procedure complex parameter in UniDAC at orace

Post by daizhicun » Tue 23 Feb 2010 10:02

we know that , we can easy call a procedure/package by TuniQuery
in oracle.

But if procedure/package has complex parameters .

I find that there are no way to call it.

for example:

we all know this procedure :DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES) ;

the :LINES is a complex parameter;

it's definition :

type chararr is table of varchar2(32767) index by binary_integer;

procedure get_lines(lines out chararr, numlines in out integer);

so my code is :

===============================================

var
sString:string;
begin
with UniQuery1 do
begin
sql.Text:='BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;';
Parameters.ParamByName('LINES').DataType:= ??
Parameters.ParamByName('NUMLINES').DataType:= ftIntger;
ExecSQL;
sString:=Parameters.ParamByName('LINES').Vaule;
end;
end;

===============================================

I don't know hot to set : Parameters.ParamByName('LINES').DataType= ??

and how to get : Parameters.ParamByName('LINES').Vaule to a stringvalue;

daizhicun
Posts: 109
Joined: Thu 21 Jan 2010 11:49

Post by daizhicun » Wed 24 Feb 2010 01:07

In fact ,I have solved it in ODAC,
But i can't do it in UniDAC;

daizhicun
Posts: 109
Joined: Thu 21 Jan 2010 11:49

Post by daizhicun » Wed 24 Feb 2010 11:01

noone know it ?

Challenger
Devart Team
Posts: 925
Joined: Thu 17 Nov 2005 10:53

Post by Challenger » Thu 25 Feb 2010 11:37

UniDAC does not support such datatypes of paramteres.

flyy
Posts: 17
Joined: Fri 18 Sep 2009 08:34

Post by flyy » Thu 25 Feb 2010 14:04

you can use a trick, create another procedure which has all parameters in your complex type. initial your complex type in that procedure and call your procedure from in it.

use new procedure from unidac

Post Reply