. 我想在前台用一个ADOStoredProc1在不同时间连接后台多个存储过程,在前台应怎么动态设置Paramerters?
我是这样写的,但出错,什么原因? km:='c'+copy(datetimetostr(date),1,4)+copy(datetimetostr(date),6,2);
ADOStoredProc1.Active :=false;
ADOStoredProc1.Parameters.clear;
ADOStoredProc1.Parameters.add;
ADOStoredProc1.Parameters[0].Value :=km;if jkglstate='ys' then
begin
ADOStoredProc1.ProcedureName :='yssfk_txt;1';
ADOStoredProc1.ExecProc ;
Application.messagebox('节水办应收数据导出完毕! ','information',MB_ICONINFORMATION);
end;if jkglstate='ss' then
begin
ADOStoredProc1.ProcedureName :='sssfk_txt;1';
ADOStoredProc1.ExecProc ;
Application.messagebox('节水办实收数据导出完毕! ','information',MB_ICONINFORMATION);
end;我分析是否否是动态设置ADOStoredProc1.Parameters时出的错?
我是这样写的,但出错,什么原因? km:='c'+copy(datetimetostr(date),1,4)+copy(datetimetostr(date),6,2);
ADOStoredProc1.Active :=false;
ADOStoredProc1.Parameters.clear;
ADOStoredProc1.Parameters.add;
ADOStoredProc1.Parameters[0].Value :=km;if jkglstate='ys' then
begin
ADOStoredProc1.ProcedureName :='yssfk_txt;1';
ADOStoredProc1.ExecProc ;
Application.messagebox('节水办应收数据导出完毕! ','information',MB_ICONINFORMATION);
end;if jkglstate='ss' then
begin
ADOStoredProc1.ProcedureName :='sssfk_txt;1';
ADOStoredProc1.ExecProc ;
Application.messagebox('节水办实收数据导出完毕! ','information',MB_ICONINFORMATION);
end;我分析是否否是动态设置ADOStoredProc1.Parameters时出的错?
procedure TForm1.BitBtn1Click(Sender: TObject);
var
ADOStoredProc1: TADOStoredProc;
begin
ADOStoredProc1 := TADOStoredProc.Create(Self);
ADOStoredProc1.Close;
ADOStoredProc1.ConnectionString := 'Provider=SQLOLEDB.1;Password=hhsm;Persist
' +
'Security Info=True;User ID=sa;Initial Catalog=hhbs;Data Source=192.168.3.19
7';
ADOStoredProc1.ProcedureName := 'DeleteBill';
ADOStoredProc1.Parameters.Refresh;
ADOStoredProc1.Parameters.ParamByName('@BillNo').Value := '203031700110002';
//单据编号
ADOStoredProc1.Parameters.ParamByName('@DeleteEmpID').Value :=
'{AF13E648-20DD-4F09-88E7-4580033E61CB}';
//作废人ID
ADOStoredProc1.Parameters.ParamByName('@UpdateNum').Value := 0;
//返回值
try
ADOStoredProc1.ExecProc;
finally
showmessage(ADOStoredProc1.Parameters.ParamByName('@UpdateNum').Value);
//根据返回值判断执行情况
{@UpdateNum = 0 --执行SQL错误!
@UpdateNum = 1 --作废成功!
@UpdateNum = 2 --可能已经入库了,此单据不能作废!
@UpdateNum = 3 -- 批发和零售单据是全款,不作废,只能退货
@UpdateNum = 4 --此单据已经作废了!}
ADOStoredProc1.Free;
end;
end;