delphi 中 adoquery 带参数查询的奇怪问题


str = 'select * from t1 a' +
 
'left outer join t2 b on a.id=b.id'+ 
'left outer join t3 c on a.id=c.id'+
 
'where c.field like :v1' ;
adoquery.sql.clear; 
adoquery.sql.add(str) ;
adoquery.parameters.paramvalues[
'v1'] := '%查询条件%'
adoquery.open;


无法查到任何数据,如果直接赋值就可以:

str = 'select * from t1 a' +
 
'left outer join t2 b on a.id=b.id'+ 
'left outer join t3 c on a.id=c.id'+
 
'where c.field like ''%查询条件%''' ;
adoquery.sql.clear; 
adoquery.sql.add(str) ;
adoquery.open;

问题出在,生成的参数,adoquery无法获取参数长度,只有参数赋值是才分配长度,如字符串“查询条件”,adoquery设置参数长度为4,当执行语句时,就变成 '%查询' ,查不到所要数据.

ADOQuery.Parameters[0].Size := 50;
后,查询结果正确。
阅读更多
文章标签: delphi
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭