firedac的TFDStoredProc动态创建并调用存储过程
2015-10-28 14:49
288 查看
1)中间件执行存储过程
sp.Close;
sp.StoredProcName := procName;
sp.Prepare; // 生成存储过程的参数列表,无任何OUTPUT的存储过程,也会自动生成一个@ReturnValue的返回值参数
params := TFDParams.Create;
try
UnpackFDParams(inParams, params); // 还原客户端上传的参数
for i:=0 to params.Count -1 do
for h:=0 to d.procOpen.ParamCount-1 do
if sp.Params[h].Name = params[i].Name then
begin
sp.Params[h].Value := params[i].Value; // 给存储过程的参数赋值
Break;
end;
finally
params.Free;
end;
sp.open;
2)客户端调用远程方法执行存储过程
procedure TfrmMain.Button2Click(Sender: TObject);
begin
cds2.Params.Clear;
cds2.Params.CreateParam(ftString,'@workno',ptInput).Value :='1'; // 参数前面记得要加@
cds2.Data := ProcOpen('9999','3',PackageParams(cds2.Params));
end;
sp.Close;
sp.StoredProcName := procName;
sp.Prepare; // 生成存储过程的参数列表,无任何OUTPUT的存储过程,也会自动生成一个@ReturnValue的返回值参数
params := TFDParams.Create;
try
UnpackFDParams(inParams, params); // 还原客户端上传的参数
for i:=0 to params.Count -1 do
for h:=0 to d.procOpen.ParamCount-1 do
if sp.Params[h].Name = params[i].Name then
begin
sp.Params[h].Value := params[i].Value; // 给存储过程的参数赋值
Break;
end;
finally
params.Free;
end;
sp.open;
2)客户端调用远程方法执行存储过程
procedure TfrmMain.Button2Click(Sender: TObject);
begin
cds2.Params.Clear;
cds2.Params.CreateParam(ftString,'@workno',ptInput).Value :='1'; // 参数前面记得要加@
cds2.Data := ProcOpen('9999','3',PackageParams(cds2.Params));
end;
相关文章推荐
- 【Java探索道路安全系列:Java可扩展的安全架构】一间:Java可扩展的安全体系结构开始
- Mybatis用法小结
- Js实现对中文进行排序
- PHP加密解密函数详解
- iOS界面编程-UIPageControl
- DIY Ruby CPU 分析——Part III
- hdu1422(简单dp)
- 碎片Fragment
- SQL Server编程(03)自定义存储过程
- 做重要决定的时候
- C++11:变长模板的迭代与递归扩展
- IOS SWIFT alte形式获取手机的相册和相机
- Android Volley完全解析(一),初识Volley的基本用法
- OpenAL基本介绍
- Vmware虚拟机下三种网络模式配置
- 认识REST
- Codevs 1427 特种部队
- Android --DOM SAX XML 的解析
- Leetcode -- Word Break
- 浅谈Swift集合类型