在sql语句中是否可以用like(20分)

  • 主题发起人 friendship
  • 开始时间
F

friendship

Unregistered / Unconfirmed
GUEST, unregistred user!
query2.SQL.Clear ;
query2.SQL.Add('select * from 人员 where 房号 like '''+edit2.text+'%'+'''') ;
query2.ExecSQL ;
query2.Active :=true;
请问各位:
在sql语句中为什么不能使用like ,是语法错,还是其它问题,请指教!
 
query2.ExecSQL ; //不用这个
 
query2.close;
query2.SQL.Clear ;
query2.SQL.Add('select * from 人员 where 房号 like '''+edit2.text+'%''') ;
query2.open;
 
可以使用like ,是你的语法有误,应该是
query2.active:=false;
query2.SQL.Clear ;
query2.SQL.Add('select * from 人员 where 房号 like '+''+edit2.text+'%'+'') ;

query2.Active :=true;

你试一下看行不行
 
query2.SQL.Clear ;
query2.SQL.Add('select * from 人员 where 房号 like '''+edit2.text+'%'+'''') ;
query2.open ;
select 不能用在execsql中


 
倒,how easy:)
上楼的方法就行了
 
這樣試一下吧
with Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from 人员 where 房号 like '''+edit2.text+'%''') ;
Open;
end;
 
with Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from 人员 where 房号 like '+#39+edit2.text+'%'+#39) ;
Open;
end;
 
上变得以作答
怎么不给分
 
在SQL中 为什么 在like 后有'%'(通配符)就不行,????
 
楼上说的够多了,补从一下:open之前设requestlive为false
 
首先你的是什么数据库,不同的数据库的通配符是不一样的

你应该用open,而不用ExecSQL;
 
我用的是access数据库,我知道在sql-server中是用 like 'aaa%' 但access中为什么不行,,,,thanks![:D]
 
感谢各位我知道了,在access中通配符是'*'
 
QUERY 支持的是标准语法,
EXECSQL是执行象UPDATE,DELETE,INSERT INTO...这类不需要返回结果的语句,
而SELECT 是返回满足SQL条件的结果集,使用QUERY.OPEN或QUERY.ACTIVE := TRUE;
 
先将'%'+edit.text+'%'赋给一个string的变量
再用带参数的Sql查询,变量前别忘了加“:”。[:)]
 
同意stuwe
 
多人接受答案了。
 
顶部