delphi中SQL模糊查询(100分)

  • 主题发起人 主题发起人 wengmxj
  • 开始时间 开始时间
W

wengmxj

Unregistered / Unconfirmed
GUEST, unregistred user!
在EDIT1中输入李,把数据库中所有姓"李"的记录查询出来,请问如何写出这样的语句?
请指教,不胜感激!
 
query1.close;
query1.sql.text := 'select * from tablename where names like '''+edit1.text+'%''';
query1.open ;
 
楼上的是向后匹配,以下是任意匹配:
query1.close;
query1.sql.text := 'select * from tablename where names like ''%'+editname.Text+'%''';
query1.open ;
 
呵,
query1.close;
query1.sql.text := 'select * from tablename where charindex('''+editname.Text+''',names)>0';
query1.open ;
 
其实无非就是多加几个引号而已,但引号中的两个单引号中的是算一个单引号字符,比如
'''',其实在字符串连接或者其实时候,这四个东西表示的是一个长度的字符,内容为‘
 
唉~挣点分真不容易阿~
 
有同感:)
 
来晚了点.楼上的都说了!
 
引号多了容易出错,很烦人,可以考虑用参数查询:
query1.close;
query1.sql.clear;
query1.sql.add('select * from tablename where names like :a1');
query1.ParamByName('a1').asstring:=edit1.text;
query1.open ;
 
楼上有错误,(忘了%号):
query1.close;
query1.sql.clear;
query1.sql.add('select * from tablename where names like :a1');
query1.ParamByName('a1').asstring:='%' + edit1.text + '%';
query1.open ;
 
>>唉~挣点分真不容易阿~
对头!
好容易懂一个,全让你们给答完了!
而且还有这么多人回答!!!
 
borland的标准做法是用quotedstr函数。

呵呵,也来弄点分。 [:)]
 
关于SQL你多多看SQLSERVER2000的联机帮助吧。大量的例题,何必小小问题都把分给别人呢?
 
啊,我连"%"都忘记了。呵呵。
 
同意 duancy

这好象是最好的 办法 . (但一点也不省事 , 又多了好几行).
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
898
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部