对参数赋值之前先把storedprocedure关闭.
p.close;
p.Parameters.ParamByName('@num').Value:=edit1.Text;
p.Parameters.ParamByName('@shijian').Value:=x.Date;
p.Prepared:=true;
p.ExecProc;
p.close;
p.Parameters.ParamByName('@num').Value:=edit1.Text;
p.Parameters.ParamByName('@shijian').Value:=x.Date;
p.Prepared:=true;
p.ExecProc;
就行了。
mudeen(笑哥哥)的说法是对的,但不能解决问题,我平时也是这么作的,只是提问时漏抄了,
liang_jimmy(陪你去看流星雨...) 的做法我想不对,
请在指点一下:
p.close;
p.ProcedureName := '存储过程名'
p.Parameters.Clear;
p.Parameters.Create(对应参数);
p.Prepared:=true;
p.ExecProc;
var
ADOQ :TAdoQuery;
beign
ADOQ.SQL.Add('Exec SPName :a,:b');
ADOQ.Parameters[0].Value:=edit1.Text;
ADOQ.Parameters[1].Value:=x.Date;
ADOQ.ExecSQL;
end;