还有,变参必须用LIKE :变量;比如 select * from employee where lastname like %:yourparam% 然后用QUERY1.Parameters.ParamByName('YOURPARAM')
try it: query.Close; query.SQL.Clear; query.SQL.Add('select * from employee where lastname like "%' +trim(edit1.Text)+'%"'); query.Open;or try it: query.Close; query.SQL.Clear; query.SQL.Add('select * from employee where lastname like '+#39 +'%'+trim(edit1.Text)+'%'+#39); query.Open;
realdigua(digua) 说的对,不过的把'try it'和'on try if '去掉,换成try ...finally或try...exept.
看:query.Close; query.SQL.Clear; query.SQL.Add('select * from employee where lastname like :x_like'); query.parambyname('x_like').asstring:='%' + trim(edit1.text) + '%'; query.Open;肯定行! 还有 select 要用open才能返回数据,execsql只用在delete,update等不返回数据的操作。
procedure TForm1.Button1Click(Sender: TObject); begin query.Close; query.SQL.Clear; query.SQL.Add('select * from employee where lastname like "%'); //多了#13#10 query.SQL.Add(trim(edit1.Text)); query.SQL.Add('%"'); //#13#10多了 query.ExecSQL; query.Open; end;//SQL是TStrings类型 //Add('?');是加一行,不是加个字符
procedure TForm1.Button1Click(Sender: TObject); begin with query do begin Close; Sql.Text := ''select * from employee where lastname like + #39 + '%' + Trim(Edit1.Text) + '%" + #39; //Prepare; Open; end; end;
更正一下: Sql.Text := 'select * from employee where lastname like ' + #39 + '%' + Trim(Edit1.Text) + '%" + #39;
select * from employee where lastname like %:yourparam%
然后用QUERY1.Parameters.ParamByName('YOURPARAM')
query.Close;
query.SQL.Clear;
query.SQL.Add('select * from employee where lastname like "%'
+trim(edit1.Text)+'%"');
query.Open;or try it:
query.Close;
query.SQL.Clear;
query.SQL.Add('select * from employee where lastname like '+#39
+'%'+trim(edit1.Text)+'%'+#39);
query.Open;
可惜outer2000(天外流星) 说得不够详细,没有完整的代码,我按你的方法做了,可是不行,可否再说得详细点,否则我要送分了,呵呵
query.SQL.Clear;
query.SQL.Add('select * from employee where lastname like :x_like');
query.parambyname('x_like').asstring:='%' + trim(edit1.text) + '%';
query.Open;肯定行!
还有 select 要用open才能返回数据,execsql只用在delete,update等不返回数据的操作。
begin
query.Close;
query.SQL.Clear;
query.SQL.Add('select * from employee where lastname like "%'); //多了#13#10
query.SQL.Add(trim(edit1.Text));
query.SQL.Add('%"'); //#13#10多了
query.ExecSQL;
query.Open;
end;//SQL是TStrings类型
//Add('?');是加一行,不是加个字符
begin
with query do
begin
Close;
Sql.Text := ''select * from employee where lastname like + #39 + '%' + Trim(Edit1.Text) + '%" + #39;
//Prepare;
Open;
end;
end;
Sql.Text := 'select * from employee where lastname like ' + #39 + '%' + Trim(Edit1.Text) + '%" + #39;