数据库查询(20分)

  • 主题发起人 主题发起人 cooler
  • 开始时间 开始时间
C

cooler

Unregistered / Unconfirmed
GUEST, unregistred user!
我用以下语句:
adoquery1.sql.add('where 姓名 like '''+edit1.text+'''%+'''''');查询与edit中字符串匹配的所有姓名,每次只能查到两个。WHY???
 
试试adoquery1.sql.add('where 姓名 like '''+TRIM(edit1.text)+'%''');
 
select * from table where name like char(34)+'%'+trim(edit1.text)+
'%'#34
 
我的SQL是这样的

select * from table where name like 'N%'

(以上是Query1.text的内容)

数据库里有记录却查不到
 
Query1.SQL.Text := 'select * from table where name like ''%N%'''
 
query1.sql.add('select * from table where 姓名 like "'+edit1.text+'"')
 
query1.sql.add(format('select * from table where 姓名 like "%s"',edit1.text))
我刚自己解决了同样问题,这样应该没错!!!
 
Query1.SQL.Add('select * from table where 姓名 like "%'+trim(Edit1.text)+'%"');
 
使用SQL实现字段数据的模糊查询。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;
 
接受答案了.
 
后退
顶部