delphi通过odac调用oracle 过程参数为数组,delphi,odac执行存储过程的正确和简单方法...

--插入记录

function ft_addTable(PTableName string, PTableId out integer)

return integer;

错误的方法

var

OraStoredProc1                      : TOraStoredProc;

begin

OraStoredProc1 := TOraStoredProc.Create(nil);

try

OraStoredProc1.Session := FMyComDBConn.FSession;

OraStoredProc1.StoredProcName := 'TableFielddef_Pack.ft_addTable';

OraStoredProc1.SQL.Add('begin');

OraStoredProc1.SQL.Add(':RESULT :=TableFielddef_Pack.ft_addTable(:PTableName, :PTableId);');

OraStoredProc1.SQL.Add('end;');

OraStoredProc1.Params.CreateParam(ftString, 'Result', ptResult);

OraStoredProc1.Params.CreateParam(ftString, 'PTableName', ptInput);

OraStoredProc1.Params.CreateParam(ftinteger, 'PTableId', ptOutput);

OraStoredProc1.ParamByName('PTableName').Value := Tablename;

OraStoredProc1.Execute;

Result := OraStoredProc1.ParamByName('PTableId').AsInteger;

finally

OraStoredProc1.Free;

end;

end;

正确的方法:

var

OraStoredProc1                      : TOraStoredProc;

begin

OraStoredProc1 := TOraStoredProc.Create(nil);

try

OraStoredProc1.Session := FMyComDBConn.FSession;

OraStoredProc1.StoredProcName := 'TableFielddef_Pack.ft_addTable';

OraStoredProc1.PrepareSQL;

OraStoredProc1.ParamByName('ptablename').Value := Tablename;

OraStoredProc1.Execute;

Result := OraStoredProc1.ParamByName('ptableid').AsInteger;

finally

OraStoredProc1.Free;

end;end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值