在我的(ssrs)数据驱动的订阅中,我尝试使用游标。我需要的结果是:字母数应等于光标返回的行数。示例:
SET ANSI_WARNINGS ON
DECLARE cur CURSOR FOR
SELECT * FROM #ForResult
OPEN cur
WHILE 1 = 1
BEGIN
FETCH NEXT FROM cur INTO @ID, @CommittedBy, @FlightNumber, @Dep, @DateBeg, @Carrier, @Arr
IF @@FETCH_STATUS <> 0 BREAK
SELECT CONVERT(VARCHAR(10), @DateBeg, 104) AS [DateBeg]
, CONVERT(VARCHAR(10), @DateBeg, 104) AS [DateEnd]
, @Dep AS [AP]
, @FlightNumber AS [FlightNumber]
, '[email protected]' AS [Recip]
, 'Отчет '
+ @FlightNumber
+ ' от ' + CONVERT(VARCHAR(10), @DateBeg)
+ ' а/к ' + @Carrier
+ ' ' + @Dep + ' - ' + @Arr
+ ' // ' + @CommittedBy AS [Subject]
END
CLOSE cur
DEALLOCATE cur
SET ANSI_WARNINGS OFF
SET ANSI_WARNINGS已解决问题Cannot read the next data row for the dataset
但是订阅仅返回第一个游标结果。如何以不同的字母返回所有行?
这是您唯一的代码,因为在SSRS中,该代码的工作方式与TSQL完全不同。应该区分大小写,字符串参数的工作方式可能不同。确保已在正确定义了所有ANSI设置的SP中安装它,然后再次运行它们