procedure TForm1.Button1Click(Sender: TObject);
var
temp1,temp2,temp3:string;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 计算机 where');
adoquery1.SQL.Add('zhuji=:temp1');//1
adoquery1.Parameters.ParamByName('temp1').Value:=edit1.text;
adoquery1.SQL.Add('and zhuopin=:temp3');//2
adoquery1.Parameters.ParamByName('temp3').Value:=edit3.text;
adoquery1.SQL.Add('and xianshiqi=:temp2');//3
adoquery1.Parameters.ParamByName('temp2').Value:=edit2.text;
adoquery1.Open;
end;
有三个参数,语法有问题吗?一运行报错:
[Microsoft][ODBC Microsoft Accecc Driver]参数不足,期待是4。
但我把三个参数去掉一个,就可以执行!
why?why?why?
var
temp1,temp2,temp3:string;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 计算机 where');
adoquery1.SQL.Add('zhuji=:temp1');//1
adoquery1.Parameters.ParamByName('temp1').Value:=edit1.text;
adoquery1.SQL.Add('and zhuopin=:temp3');//2
adoquery1.Parameters.ParamByName('temp3').Value:=edit3.text;
adoquery1.SQL.Add('and xianshiqi=:temp2');//3
adoquery1.Parameters.ParamByName('temp2').Value:=edit2.text;
adoquery1.Open;
end;
有三个参数,语法有问题吗?一运行报错:
[Microsoft][ODBC Microsoft Accecc Driver]参数不足,期待是4。
但我把三个参数去掉一个,就可以执行!
why?why?why?
adoquery1.SQL.Add('and zhuopin=:temp3');//2
adoquery1.SQL.Add('and xianshiqi=:temp2');//3
adoquery1.Parameters.ParamByName('temp1').Value:=edit1.text;
adoquery1.Parameters.ParamByName('temp2').Value:=edit2.text;
adoquery1.Parameters.ParamByName('temp3').Value:=edit3.text;我习惯这样写~~~~~
var
temp1,temp2,temp3:string;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 计算机 where');
adoquery1.SQL.Add(' zhuji=:temp1');//1 前面加了空格
adoquery1.SQL.Add(' and zhuopin=:temp3');//2
adoquery1.SQL.Add(' and xianshiqi=:temp2');//3 adoquery1.Parameters.ParamByName('temp1').Value:=edit1.text;
adoquery1.Parameters.ParamByName('temp3').Value:=edit3.text;
adoquery1.Parameters.ParamByName('temp2').Value:=edit2.text;
adoquery1.Open;
end;
begin
with adoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from 计算机 where ');
SQL.Add(' zhuji=:temp1 ');//1 前面加了空格
SQL.Add(' and zhuopin=:temp3 ');//2
SQL.Add(' and xianshiqi=:temp2 ');//3 Parameters.ParamByName('temp1').Value:=edit1.text;
Parameters.ParamByName('temp3').Value:=edit3.text;
Parameters.ParamByName('temp2').Value:=edit2.text;
Open;
end;
end;
而且在DELPHI的 SQL 中所用的参数不用初始定义的!所以去掉了TEMP1,2,3的定义