function DaBmIsUse(ACn:TAdoConnection;vtablename:string;vbmfield:string;vbm:string):Boolean;
var
Sp:TAdoStoredProc;
iOk:Integer;
vInfo:string;
begin
vInfo:='';
Sp:=TAdoStoredProc.Create(nil);
try
Sp.Connection:=ACn;
Sp.ProcedureName:='p_bmisuse';
with Sp do
begin
Close;
Parameters.Clear;
Parameters.CreateParameter('@vtablename', ftString, pdInput,30, vtablename);
Parameters.CreateParameter('@vbmfield', ftString, pdInput,30, vbmfield);
Parameters.CreateParameter('@vbm', ftString, pdInput,30, vbm);
Parameters.CreateParameter('@iOk', ftSmallint,pdOutput,4, iOk);
Parameters.CreateParameter('@vInfo', ftString, pdOutput,100,vInfo);
Prepared:=true;
ExecProc;
Result:=Parameters.ParamValues['@iOk']<>0;
end;
finally
Sp.Close;
Sp.Free;
end;
end;-----------
是delphi的,难道像上面这样调用不对?有内存泄漏?
var
Sp:TAdoStoredProc;
iOk:Integer;
vInfo:string;
begin
vInfo:='';
Sp:=TAdoStoredProc.Create(nil);
try
Sp.Connection:=ACn;
Sp.ProcedureName:='p_bmisuse';
with Sp do
begin
Close;
Parameters.Clear;
Parameters.CreateParameter('@vtablename', ftString, pdInput,30, vtablename);
Parameters.CreateParameter('@vbmfield', ftString, pdInput,30, vbmfield);
Parameters.CreateParameter('@vbm', ftString, pdInput,30, vbm);
Parameters.CreateParameter('@iOk', ftSmallint,pdOutput,4, iOk);
Parameters.CreateParameter('@vInfo', ftString, pdOutput,100,vInfo);
Prepared:=true;
ExecProc;
Result:=Parameters.ParamValues['@iOk']<>0;
end;
finally
Sp.Close;
Sp.Free;
end;
end;-----------
是delphi的,难道像上面这样调用不对?有内存泄漏?
解决方案 »
- x32的程序中x64下运行出错了
- 任何让TDateTimePicker显示当天的日期
- DBGrid的两个问题...
- 高分请教关于OleVariant和TStream的问题
- 用delphi 编程时,如何得到SWF画面的原始尺寸?
- 用DELPHI解决数据库问题---制作一个车购办的程序有几个难点( 大侠都进来看盾,解决问题给高分)
- 用ADO连接的方法,如何处理数据被别人更改的情况
- 请问query.state not in [dsedit,dsinsert]一句有什么错??10分
- 在C/S的三层结构中使用socketconnect进行连接,如何让客户端自动查找到服务器端的host?
- 在用ADO时,只要生成的结果集为空或打开的表为空就报错,为什么?而且无法拦截???
- 一个记录数组从一个窗体传递给另外一个窗体,可以直接传递吗?
- 我这样使用(调用)存储过程,会不会造成内存泄漏
>1
ftSmallint用整型
>2
初始化你的iok值-----------------------------
iOk:Integer; Parameters.CreateParameter('@iOk', ftSmallint,pdOutput,4, iOk);