调用存储过程出错(100)

W

wglifs

Unregistered / Unconfirmed
GUEST, unregistred user!
用Delphi调用时出现错误:ADOSP_Tmp:field 'rValue' not found存储过程CREATE procedure p_ReTest @CartonID varchar(20), @UserID varchar(20), @rValue int output) with encryption as set @rValue = 0 update shipscan set Re_User=@UserID,Re_Date=GetDate(),Re_Status =1 where CartonNo=@CartonID update shipment set Re_Status=1 where CartonNo=@CartonID set @rValue = 1DELPHI调用 with DM.ADOSP_Tmp do begin Close; ProcedureName := 'p_ReTest'; Parameters.Clear; Parameters.CreateParameter('CartonID',ftString,pdinput,20,null); Parameters.CreateParameter('UserID',ftString,pdInput,20,null); Parameters.CreateParameter('rValue',ftInteger,pdOutput,20,0); Parameters.ParamByName('CartonID').Value := '12345678'; Parameters.ParamByName('UserID').Value := '0001'; Prepared := True; ExecProc; end; if DM.ADOSP_Tmp.FieldByName('rValue').Value <> 1 then begin Application.MessageBox('Upgrade failure','Prompt',64); Exit; end;
 
你这样调用 Query.commandtext:='exec p_ReTest '''+@CartonID+''','''+@UserID+''','看这样可不可以
 
1:程序中参数要和存储过程的参数对应。(@+参数)2:Parameters.Clear;后,要有返回值参数:Parameters.CreateParameter('@RETURN_VALUE', ftinteger, pdReturnValue, 4, -1);3:参数在创建时直接赋值好了。Parameters.CreateParameter('@CartonID',ftString,pdinput,20,'12345678');Parameters.CreateParameter('@UserID',ftString,pdInput,20,'0001');
 
with DM.ADOSP_Tmp do begin Close; ProcedureName := 'p_ReTest'; Parameters.Refresh; Parameters.ParamByName('@CartonID').Value := '12345678'; Parameters.ParamByName('@UserID').Value := '0001'; Parameters.ParamByName('@rValue').Value := 0; Prepared := True; ExecProc; end;
 
ParametersCheck属性设置??
 
顶部