存储过程调用问题?(200)

  • 主题发起人 主题发起人 毕常青
  • 开始时间 开始时间

毕常青

Unregistered / Unconfirmed
GUEST, unregistred user!
动态创建一个存储过程 createprocA:='Create Procedure ProcA'+ '(' + '@Seqno varchar(16),'+ '@AccNo varchar(22),' + '@AccName varchar(60)'+ ')' + ' AS '+ 'insert into A1' + '(' + 'seqno,'+ 'accno,'+ 'accname'+ ')'+ ' values '+ '('+ '@Seqno,'+ '@AccNo ,' + '@AccName '+ ')' ; with qry2 do begin close; sql.Clear; sql.Add(CreateProcA) ; execsql; end;调用存储过程procedure TForm2.Button7Click(Sender: TObject);var StoredProc : TADOStoredProc;begin StoredProc:=TADOStoredProc.Create(nil); try StoredProc.Connection := AdoConnection1; //设置数据连接 StoredProc.ProcedureName := 'ProcA'; //存储过程名 with storedproc do begin Parameters.ParamByName('@seqno').Value := '20000'; parameters.ParamByName('@accno').Value := '123456'; parameters.ParamByName('@accname').Value :='nosubject'; Prepared := True; ExecProc; end; finally StoredProc.Free;end;[red]有错误提示.Parameter ‘@seqno’ not found请各位帮助调试一下。[/red]
 
呵呵,我在用原生ADO时也遇到过这种情况,在原生ADO里的解决办法是,添加return返回值:var cmd: _Command; par: _Parameter; Mid:Integer;begin cmd := CoCommand.Create; cmd.Set_ActiveConnection(con); cmd.CommandText := 'InstNew'; cmd.CommandType := adCmdStoredProc; par := cmd.CreateParameter('Return', adBoolean, adParamReturnValue, 1, EmptyParam ); //这里的Return在存储过程中并没有定义,但是缺了它就会出现程序提示后面的变量找不到 cmd.Parameters.Append( par ); par := cmd.CreateParameter('DH',adInteger , adParamInput,4 , Pwtfid); cmd.Parameters.Append(par); par := cmd.CreateParameter('WTF', adVarChar, adParamInput, 50, Pwtf); cmd.Parameters.Append(par); par := cmd.CreateParameter('WTRQ',adDate, adParamInput, 8, DateOf(Pwtrq)); cmd.Parameters.Append(par); par := cmd.CreateParameter('BARY', adVarChar, adParamInput, 10, Pbary); cmd.Parameters.Append(par); par := cmd.CreateParameter('ID',adInteger ,adParamOutput ,4 ,1); cmd.Parameters.Append(par); cmd.Execute(EmptyParam ,EmptyParam ,adCmdStoredProc+adExecuteNoRecords) ;
 
加上这句就可以了Parameters.Refresh;
 
按SNS的方法解决了
 
相当于没有加参数,sns的方法可行,不过可提前设置好,减少开销
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
847
import
I
后退
顶部