我想通过一个表的某个字段来查询出相应的一条记录!我用一个Edit1来输入查询的条件,
有两种情况:1,输入的查询条件完全匹配。
2,输入的查询条件模糊或者不匹配。我是这样做的: with Adoquery1 do
begin
close;
sql.clear;
sql.add('select * from 表');
sql.add(' where 字段 like '+'%'+trim(Edit1.text)+'%');//我是这样做的,可是程序报语法错误,怎么办?主要是想实现模糊查询。
open;
end;总觉得是那个‘%’的引号的问题!怎么修改啊?
有两种情况:1,输入的查询条件完全匹配。
2,输入的查询条件模糊或者不匹配。我是这样做的: with Adoquery1 do
begin
close;
sql.clear;
sql.add('select * from 表');
sql.add(' where 字段 like '+'%'+trim(Edit1.text)+'%');//我是这样做的,可是程序报语法错误,怎么办?主要是想实现模糊查询。
open;
end;总觉得是那个‘%’的引号的问题!怎么修改啊?
sql.add(' where 字段 like ''%'+trim(Edit1.text)+'%''');
SQL.Add('where 字段 like :变量名');
Parameters.ParamByName('变量名').Value:='%'+trim(Edit1.Text)+'%';
这样是不是好看一些呢
其它的就都一样了。
with Adoquery1 do
begin
close;
sql.clear;
sql.add('select * from 表 ');
sql.add(' where 字段 like '+QuotedStr('%'+trim(Edit1.text)+'%'));
open;
end;
就没有问题了
如果query1.active:=true;时dbgrid显示有字段无数据,就是查询结果为空集
肯定通过,勿忘加分呀。
dbgird1的columneditor 清除所有的column
执行之后看dbgrid是否有字段名
或者
sql.add(' where 字段 like "%'+trim(Edit1.text)+'%" ');
sql.add(' where 字段 like '+'%'+trim(Edit1.text)+'%');
为:
sql.add(' where 字段 like '+'"%'+trim(Edit1.text)+'%"');
注意%号前后的双引号。