首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-02-13 
调用存储过程出现超出当前范围functionDaBmIsUse(ACn:TAdoConnectionvtablename:stringvbmfield:string

调用存储过程出现超出当前范围
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在查询分析器中执行有没有问题。
[解决办法]
不要动态创建释放数据库访问控件。应该预先创建好,然后重复调用即可

热点排行