adoquery连接sqlserver查询出错
用adoquery连接sqlserver查询,当查询语句比较复杂的时候,对参数传'',就会出现错误。adoquery会自动把参数转换成text类型,其实是varchar类型,但是由于语句比较复杂,所以adoquery判断不出参数是什么类型了.直接在查询分析器里执行是好的。
sql:
CREATE TABLE [dbo].[test] ( [name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [number] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY]
with ADOQuery1 dobegin close; sql.text := 'select * from test a left join (select name from test where name=:name) b on a.name=b.name'; Parameters[0].value := ''; Open;end;
exec sp_executesql N'select * from test a left join (select name from test where name=@P1) b on a.name=b.name', N'@P1 text', ''