query.sql中,like 一个参数,该怎么写?(20分)

  • 主题发起人 主题发起人 千中元
  • 开始时间 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
不知道该怎么表达好了。
比如在edit1中输入一个姓名,
然后查询,因为可能输入笔误,或着记不清。。
where 姓名 like...????
 
where NAME like '千中元%'
 
to silly,
我是想让别人在Edit 中输入,在按button,查询。查询出的结果 like edit.text.
也就是动态的参数,‘千中元 ’太安静了:P
 
我想是
where name like ':inputname%'
query1.parambyname('inputname').asstring:=edit1.text
现在在win2000下,也没法试验
 
或者
LikeString := edit1.text+'%'
 
如要找王某某,应为'王%'
where NAME=:NAME
query1.parambyname('NAME').asstring:=format('%s%%',[edit1.text]);
 
应该是这样的:
query1.parambyname('inputname').asstring:='%'+edit1.text+'%'
 
要找所有性名中有edit1.text的人
where people.name like :name
query1.sql.paramentbyname('name').asstring:='%'+edit1.text+'%';


 
where name like :inputname || '%'
 
要找所有性名中有edit1.text的人

Query1.Active = False;
Query1.Sql.Clear;
Query1.Sql.Add('where people.name like :findname');
query1.sql.paramentbyname('findname').asstring:='%' + edit1.text + '%';
query1.Open;



 
对字符型应为
Query1.Active = False;Query1.Sql.Clear;
Query1.Sql.Add('where people.name like :findname');
query1.sql.paramentbyname('findname').asstring:=
''''+'%' + edit1.text + '%''';
query1.Open;
 
如果是存储过程呢? 只变成storeproc就可以?
 
sql中'%'相当于DOS中的'*','_'相当于DOS中的'?',
SQL中用了通配符后必须用LIKE,如:
"select *
from ...
where name like :name"
pas中:
query1.parambyname('name').asstring:='%'+edit1.text+'%';
 
接受答案
 
后退
顶部