这段SQL哪里错了?(50分)

  • 主题发起人 主题发起人 Delphi 6.0
  • 开始时间 开始时间
D

Delphi 6.0

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm5.Button3Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from 表1.dbf where 运编号="33333"');
adoquery1.open;
end;
end;
上面的SQL语句运行通过没问题。
下面的加了变量后就不运行报错,请问下面的SQL语句哪里错了
procedure TForm5.Button3Click(Sender: TObject);
var
a:string;
begin
a:=edit1.text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from 表1.dbf where 运编号=:a');
adoquery1.open;
end;

end.
 
procedure TForm5.Button3Click(Sender: TObject);
var
a:string;
begin
a:=edit1.text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from 表1.dbf where 运编号=:a');
adoquery1.parambyname('a').value := '33333'; //加上这句
adoquery1.open;
end;
 
mlzhou说了,加了变量之后,再open前,要给变量赋值
 
因为你没有给a赋值,要使用adoquery1.Params[0].AsString= edit1.text
 

var
a:string;
begin
a:=edit1.text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from 表1.dbf where 运编号=:a');
adoquery1.params[0].asstring := '33333'; //加上这句
adoquery1.open;
 
adoquery1.SQL.add('select * from 表1.dbf where 运编号="33333"');
应该为
adoquery1.SQL.add('select * from 表1.dbf where 运编号=''33333''');
是两个单引号,不是双引号,老兄!!!!拜托!!

你SQL的参数:a和定义的v avar a毫无关系
adoquery1.params.paramByName('a').asstring := '33333';

 
同意tan_jian 这叫SQL凑语句
 
adoquery1.SQL.add('select * from 表1.dbf where 运编号='+''''+edit1.text+''''');

adoquery1.params.paramByName('a').asstring := edit1.text;
 
同意楼上的
 
后退
顶部