delphi,odac执行存储过程的正确和简单方法

本文介绍了两种在Delphi中调用Oracle存储过程的方法,并对比了它们的不同之处。通过具体的示例代码,展示了如何正确地使用TOraStoredProc组件来执行存储过程并获取输出参数。

--插入记录
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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值