各位老大看这段SQL语句有什么问题,谢谢(20分)

  • 主题发起人 主题发起人 ldwolf
  • 开始时间 开始时间
L

ldwolf

Unregistered / Unconfirmed
GUEST, unregistred user!
运行的时候老说语法错。
sql.add('select * from fill where question like' + '%'+fnd+'%');
fnd是个字符串变量
 
改成:
sql.add('select * from fill where question like ''%' + fnd + '%''');
 
应该是
sql.add('select * fom fill where questino like '+'''%fnd%''')
如果你的fnd是变量的话,应该为
sql.add('select * from fill where question like ''%' + fnd + '%''')
 
sql.add('select * from fill where question like ' +#39+ '%'+fnd+'%'+#39);
^^空格
 
sql.clear;
sql.add('select * from fill where question like ' + #39 + '%' + fnd + '%'+ #39);
open;
 
你应改为
SQL。CLEAR;
SQL。ADD(‘SELECT * FROM FILL WHERE QUESTION LIKE :FND’)
OPEN;

PARAMBYNAME(‘FND’)。ASSTRING:=‘%’+EDIT1。TEXT+‘%’
 
如果需要变量传递参数的话变量前面要加:,而且还要加传递参数的语句啊。
adodataset1.active:=fasle;
adodataset1.Parameters.CreateParameter('fnd',ftstring,pdinput,8,null);
sql:='select * from fill where question like ' + '''%' + ':fnd+ '% ''';

adodataset1.Parameters.ParamByName(':fnd').value:=...;//自己填
adodataset1.active:=true;
差不多就是这样,我不知道你用的什么控件查询的。给你的例子是用adodataset
你试试把
 
由于FND为一字符串变量,所以应写代码如:
sql.add('select * from fill where question like ''' + '%'+fnd+'%''');
D5测试通过。
 
nsj ok
结了吧
 
用动态参数赋值不好吗?为什么非要这样
 
sql.add('select * from fill where question like' + ' ''%'+fnd+'%'' ');
 
sql.add('select * from fill where question like' + '''' + '%' + fnd + '%' + '''');
这样就应该可以的。。
 
sql.clear;
sql.add('select * from fill where question like '''+'%'+find+'%'+'''');
 
给出了这么多答案,该结束了!:)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
641
import
I
I
回复
0
查看
709
import
I
I
回复
0
查看
663
import
I
后退
顶部