首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

adoquery参数传递机制,该怎么处理

2012-09-23 
adoquery参数传递机制一直对adoquery的参数传递机制很疑惑。比如说sql.text : select * from (select * f

adoquery参数传递机制
一直对adoquery的参数传递机制很疑惑。
比如说sql.text := 'select * from (select * from a left join b on XX=XX where a.XX=:参数1) a';
然后我用Parameters.parambyname('参数1').value := '';传递参数,
接着去open这个query。就会出现错误。跟踪了sqlserver的事件探查器,发现原因是adoquery给sqlserver传的语句中,:参数的类型是text,然后sqlserver就会提示text类型不是直接用"="比较。
再比如我用Parameters.parambyname('参数1').value := '参数';传递参数,
然后执行这个query,这个query传递给sqlserver的语句里面又会把:参数的类型变成varchar(1),这样又把参数给截断了,又得不到我想要的结果了。我给Parameters.parambyname('参数1').datatype赋值也没用,会提示错误。
希望哪位达人能帮忙解决一下

[解决办法]

Delphi(Pascal) code
  ADOQuery1.Close;  ADOQuery1.SQL.Clear;  ADOQuery1.SQL.Text := 'select acco_name from (select * from bs_acco_info where acco_id=:e) a';  ADOQuery1.Parameters.ParamByName('e').Value := '0111000005';  ADOQuery1.Open; 

热点排行