delphi7 调用二个参数的存储过程问题????
有sql server 2000 的存储过程如下:
当只有一个参数时能正常执行,在DBGrid显示符合条件的数据。
当增加一个参数,用于辨别要查询字段,就出错
不知何故???
请高手给予正确代码。
CREATE PROCEDURE xscx
@cxz varchar(50),
@dm varchar(20) <---增加
AS
if @dm='编码'
begin
SELECT x_djrq,x_djbh,x_spbm,x_spmc,x_sl,x_zhdj,x_zhje,x_id FROM xsdb where x_spbm like '%'+@cxz+'%'
end
if @dm='名称'
begin
SELECT
x_djrq,x_djbh,x_spbm,x_spmc,x_sl,x_zhdj,x_zhje,x_id FROM xsdb where x_spmc like '%'+@cxz+'%'
end
GO
with xc.ADODataSet1 do
begin
Active:=false;
CommandType:=cmdStoredProc;
CommandText:='xscxwlmxwr';
Parameters.Clear;
Parameters.AddParameter;
Parameters[0].Name:='@cxz';
Parameters[1].Name:='@dm'; <----增加
Parameters[0].Direction:= pdInput;
Parameters[1].Direction:= pdInput; <----增加
Parameters[0].DataType:=ftString;
Parameters[1].DataType:=ftString; <----增加
Parameters.Refresh;
Parameters.ParamByName('@cxz').Value:=trim(Edit1.Text);
Parameters.ParamByName('@dm').Value:=trim(Edit2.Text); <----增加
Active:=true;
ExecuteOptions;
end;
出现错误:list index out of bounds(1),