Reporting services 使用ODBC连接到SQL SERVER时,SSRS错误必须声明标量变量
我有一个SSRS数据集查询,其中有一个名为BENEFIT的值参数。我的数据源是SQL SERVER 2014:以下查询给出错误“error[42000][Microsoft][SQL SERVER Native Client 10.0][SQL SERVER]必须声明标量变量“@BENEFIT” 该错误仅在使用ODBC连接时存在,并在使用直接连接时消失。如果没有参数,则查询将使用任一连接方法正确解析 任何想法都值得赞赏 谢谢,Reporting services 使用ODBC连接到SQL SERVER时,SSRS错误必须声明标量变量,reporting-services,parameters,dataset,odbc,sql-server-2014,Reporting Services,Parameters,Dataset,Odbc,Sql Server 2014,我有一个SSRS数据集查询,其中有一个名为BENEFIT的值参数。我的数据源是SQL SERVER 2014:以下查询给出错误“error[42000][Microsoft][SQL SERVER Native Client 10.0][SQL SERVER]必须声明标量变量“@BENEFIT” 该错误仅在使用ODBC连接时存在,并在使用直接连接时消失。如果没有参数,则查询将使用任一连接方法正确解析 任何想法都值得赞赏 谢谢, AlasdairODBC不支持命名参数,因此请尝试将参数名称更改为?
AlasdairODBC不支持命名参数,因此请尝试将参数名称更改为
?
:
选择c.BENEFIT FROM CLAIM作为c,其中c.DOWNLOAD_DATE>'20150701'和c.BENEFIT=?
详情请参阅:
请注意“将参数与OleDbCommand或ODBCommand一起使用”一节。“
在查询前将NOCOUNT设置为ON
,如果在查询中声明变量,则在查询后将其设置为OFF。如果变量在查询之外声明,则使用PicoDeGallo所述的?
。Hi-iDrian-这是一个SSRS数据集查询。我已经更新了我的文字,使之更加清晰@我明白,但我的答案仍然有效。来自任何源的ODBC连接都不支持命名参数。请尝试我上面推荐的。谢谢,这确实有效。我将避免使用ODBC。有趣的是,Crystal reports将解析并替换命令对象(dataset)中的命名参数。看来SSRS在这方面还不太发达,不起作用。您无法摆脱ODBC驱动程序的限制。与代码或查询无关
SELECT c.BENEFIT FROM CLAIM AS c
WHERE c.DOWNLOAD_DATE > '20150701' AND c.BENEFIT = (@ BENEFIT)