您的位置:首页 > 编程语言 > Delphi

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

2007-10-08 16:52 459 查看

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;
后,查询结果正确。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐