读书人

调用存储过程出现超出当前范围解决方案

发布时间: 2012-02-13 17:20:26 作者: rapoo

调用存储过程出现超出当前范围
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的,难道像上面这样调用不对?有内存泄漏?

[解决办法]
先检查SP在查询分析器中执行有没有问题。
[解决办法]
不要动态创建释放数据库访问控件。应该预先创建好,然后重复调用即可

读书人网 >.NET

热点推荐