出错显示: parameter 'var1' not found with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select'+' '+Selectstr);
SQL.Add('From name');
end;
if Valuestr='' then
ShowMessage('请输入查询值')
else
begin
if AutoFind.Checked=True then
ADOQuery1.SQL.Add('where '+Itemstr+' like''%'+':var1' +'%''')
else
ADOQuery1.SQL.Add('where '+Itemstr+'=:var1');
ADOQuery1.Parameters.ParamByName('var1').Value:=Valuestr;
try
ADOQuery1.Open;
except
ADOQuery1.ExecSQL;
end;
end;
begin
Close;
SQL.Clear;
SQL.Add('Select'+' '+Selectstr);
SQL.Add('From name');
end;
if Valuestr='' then
ShowMessage('请输入查询值')
else
begin
if AutoFind.Checked=True then
ADOQuery1.SQL.Add('where '+Itemstr+' like''%'+':var1' +'%''')
else
ADOQuery1.SQL.Add('where '+Itemstr+'=:var1');
ADOQuery1.Parameters.ParamByName('var1').Value:=Valuestr;
try
ADOQuery1.Open;
except
ADOQuery1.ExecSQL;
end;
end;
怎么这么乱阿
ADOQuery1.SQL.Add('where '+Itemstr+' like :var1') 注意空格like空格
ADOQuery1.Parameters.ParamByName('var1').Value:='%'+Valuestr+'%';
所以应该修改如下:
...前边略
if AutoFind.Checked=True then
begin
adoquery1.sql.add('where '+Itemstr+' like :var1');
adoquery1.parameters.parambyname('var1').value:='%'+Valuestr+'%';
end
else
begin
adoquery1.sql.add('where '+itemstr+'=:var1');
adoquery1.parameters.parambyname('var1').value:=Valuestr;
end;
adoquery1.Open;
你在前面加上:
self.ADOQuery1.Parameters.AddParameter.Name :='var1';试试;
ADOQuery1.Parameters.ParamByName('var1').Value:='%'+Valuestr+'%';