Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 使用ODBC连接到SQL SERVER时,SSRS错误必须声明标量变量_Reporting Services_Parameters_Dataset_Odbc_Sql Server 2014 - Fatal编程技术网

Reporting services 使用ODBC连接到SQL SERVER时,SSRS错误必须声明标量变量

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不支持命名参数,因此请尝试将参数名称更改为?

我有一个SSRS数据集查询,其中有一个名为BENEFIT的值参数。我的数据源是SQL SERVER 2014:以下查询给出错误“error[42000][Microsoft][SQL SERVER Native Client 10.0][SQL SERVER]必须声明标量变量“@BENEFIT”

该错误仅在使用ODBC连接时存在,并在使用直接连接时消失。如果没有参数,则查询将使用任一连接方法正确解析

任何想法都值得赞赏

谢谢,
Alasdair

ODBC不支持命名参数,因此请尝试将参数名称更改为

选择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)