create or replace package RD_pk
as type Cursor_Ref is ref cursor;end;
create or replace procedure P_999(p_cur out RD_pk.Cursor_Ref) is
begin OPEN p_cur FOR select c1,c2 from table999; end P_999;
create or replace procedure P_998(p1 in varchar2, p2 in varchar2) is
begin insert into table999(c1,c2) values (p1,p2); COMMIT;end P_998;
procedure TForm1.Button1Click(Sender: TObject);
var m:TServerMethods1Client;begin m:=TServerMethods1Client.Create(SQLConnection1.DBXConnection); ClientDataSet1.Data := m.spOpen('1', 'P_999', null); m.Free;end;procedure TForm1.Button2Click(Sender: TObject);
var m:TServerMethods1Client; p:TParams;begin m:=TServerMethods1Client.Create(SQLConnection1.DBXConnection); p:=TParams.Create(nil); p.CreateParam(ftString, 'p1', ptInput).AsString := '1'; p.CreateParam(ftString, 'p2', ptInput).AsString := '1'; m.spExec('1', 'P_998', PackageParams(p)); m.Free; p.Free;end;