Package Wizard and Object Type

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
eml79
Posts: 13
Joined: Thu 28 Jun 2007 09:20

Package Wizard and Object Type

Post by eml79 » Wed 27 Jan 2010 08:30

I use ODAC 6.90.0.54 & Oracle 10.2
I try generate pas file for SYS.DBMS_DATAPUMP.
I have problem with method Get_STATUS.

Oracle declartion
FUNCTION get_status (...) RETURN ku$_Status;
PROCEDURE get_status (..., status OUT ku$_Status1010);
PROCEDURE get_status (..., status OUT ku$_Status1020);

convert to
function GetStatus(...): TOraObject;
procedure GetStatus(...; out Status: TOraObject); overload;
procedure GetStatus(...; out Status: TOraObject); overload;

problem:
1. Type of Status is not define: ku$_Status1010 or ku$_Status1020 ?
2. In the future version of oracle may appear a new overloaded Get_Status with new type of status..., and how work?
3. Error: "Method 'GetStatus' with identical parameters exists already" on compilation

----------------
maybe use:
TkuStatus1010 = class(TOraObject)
...
AllocObject('ku$_Status1010');
...

Result:
procedure GetStatus(...; out Status: TkuStatus1010); overload;
procedure GetStatus(...; out Status: TkuStatus1020); overload;

eml79
Posts: 13
Joined: Thu 28 Jun 2007 09:20

New bug

Post by eml79 » Wed 27 Jan 2010 09:22

I try execute GetStatus (generated with Package Wizard)

procedure TForm1.Button7Click(Sender: TObject);
var
Datapump: TSysDbmsDatapump; //generated (with Package wizard)
Number: TOraNumber;
begin
OraSession1.Open;
Number := TOraNumber.Create;
Datapump := TSysDbmsDatapump.Create(nil);
Datapump.Session := OraSession1;
Number.asInteger := 1;
Datapump.GetStatus(Number, Number, Number); //<-- bug
end;

Result

ORA-06550: Строка 2, столбец 14:
PLS-00382: выражение неправильного типа
ORA-06550: Строка 2, столбец 3:
PL/SQL: Statement ignored

instead of ORA-31623 (job not exist).

Post Reply