㈠ delphi 模糊查找
delphi里应该用:if Pos(xm,dbmemo1.text)>0 then showmessage('found');
㈡ 在delphi中如何实现过滤字段
aa
㈢ delphi中的查询按钮怎么转换为模糊查询
不用filter,直接使用完整的SQL的select命令。
㈣ 如何在delphi中实现比较精确的模糊查询
用这种方法在服务器的SQL
SERVER
中可以很方便,但如何在DELPHI中用此种方法实现动态模糊查询?
㈤ delphi 的 dataset 用filter 过滤时 汉字如何完成 模糊查询啊
想实现模糊查询,甚至于更为复杂的查询,改用Query吧
㈥ delphi cxgrid控件中自定义筛选,用like时,要加% %才能实现模糊查询,如何不要输入% %就能实现。
这个如果不输入%%,需要自己去改代码
㈦ delphi如何用locate实现模糊查询(满意加分)
以前我也碰过这个问题,但使用Locate没有找到答案
后来找了一个变通的方法,稍微麻烦一些,但也能达到要求
先认识一下TDataset的RecNo属性
DataSet.RecNo
RecNO其实就是行号,标识了某一行数据,如DataSet.RecNo := 1
这个操作可以使指针指向第一行,所以:如果你能将符合你要求的数据行号保存下来,意味着你能做到如你所想的一个个查询。
你所需要做的:
1.定义一个行号列表
RecNoList: TStringList;
2.对DataSet进行循环得到标识列表
RecNoList.Clear;
DataSet.First;
DataSet.DisableControls; //加这个语句可以明显提高循环效率,原因请自己查
While Not DataSet.Eof do
begin
if DataSet.FieldByName('tName').AsString = EdtName.Text then
//我这里查的是同名的人,你可以根据自己的要求修改这里实现你需要的模糊查询
begin
RecNoList.Add(IntToStr(DataSet.RecNo));
end;
DataSet.Next;
end;
DataSet.EnableControls;
3.有了列表,就可以方便的指向你的查询结果。这里面的控制你就自己考虑下吧(需要一个标签保存你当前所指向的RecNoList.Index,以便再次点击按钮可以指向下一个)。
4.如果你有Locate的解决方法,请帖出来。
㈧ delphi怎么模糊查询
如果查数据库可以像2楼所述的那样查询
稍微改一下
query.add('select * form table1 where filed1 like '+‘%’+combox1.text+'%');
㈨ DELPHI控件检索条件如何达到模糊检索
对于BDE数据集,用下面的例程可实现模糊查询。共可输入5个变量(s1,s2,s3,s4,s5),其中s4,s5为日期型变量,需要用cast函数转换。希望对你有用!!!
procere TForm1.Button1Click(Sender: TObject);
var
s,s1,s2,s3,s4,s5:string;
begin
s1:='%'+trim(edit1.Text)+'%';
s2:='%'+trim(edit2.text)+'%';
s3:='%'+trim(edit3.text)+'%';
s4:=edit4.text;
s5:=edit5.text;
s:='';
if trim(edit2.text)<>'' then
if length(s)=0 then s:=s+'(知识主题 like '+''''+s2+''''+')'
else s:=s+'and(知识主题 like '+''''+s2+''''+')';
if trim(edit1.text)<>'' then
if length(s)=0 then s:=s+'(分类 like '+''''+s1+''''+')'
else s:=s+'and(分类 like '+''''+s1+''''+')';
if trim(edit3.text)<>'' then
if length(s)=0 then s:=s+'(索引关键字 like '+''''+s3+''''+')'
else s:=s+'and(索引关键字 like '+''''+s3+''''+')';
if s4<>'' then
if length(s)=0 then s:=s+'(日期>=cast('+''''+s4+''''+'as date))'
else s:=s+'and(日期>=cast('+''''+s4+''''+'as date))';
if s5<>'' then
if length(s)=0 then s:=s+'(日期<=cast('+''''+s5+''''+'as date))'
else s:=s+'and(日期<=cast('+''''+s5+''''+'as date))';
if s<>'' then s:='select * from '+'"'+queryx+'"'+' where '+s
else s:='select * from '+'"'+queryx+'"';
memo1.lines.clear;
memo1.lines.add(s);
query1.sql.Clear;
query1.SQL.add(s);
query1.open;
form1.activecontrol:=dbgrid2;
end;
㈩ 如何在DELPHI中实现字段模糊查询
Delphi作为一个强大的数据库应用开发工具的一个重要标志,就是支持SQL编程。在实际的过程中,经常需要对某些字段进行模糊查询。如对“姓名”字段进行查询,当输入“王”时,能自动地将王姓的所有记录列出来。其实,通过结合SQL和Delphi的特点,就能很容易地完成这个功能。其基本原理是:查询时,将查询的范围控制在姓名大于‘查询字符串+chr(0)’与小于‘查询字符串+chr($ff)’之间,就能将满足条件的所有记录查询出来了。下面是具体的例子:
Var
NameStr:String;‖设置字符串中间变量
Begin
NameStr:=′王′;
Query1??SQL??Clear{清除SQL属性中的SQL命令语句}
Query1??SQL??Add(′Select*FromCustom??dbwhere(Name1>=N1)and(Name2<=N2)′);‖SQL命令语句
Query1??params[0]??AsString:=NameStr+chr(0);‖控制参数在NameStr+Chr(0)
Query1??params[1]??AsString:=NameStr+chr($ff);‖和NameStr+Chr($ff)之间
Query1??Open;‖打开数据库,执行SQL查询
End;