我要用一个存储过程作为数据源给报表提供数据,
问题是这个存储过程返回两个数据集。在报表的数据那块只能收到第一个数据集。
问题就是:第二个数据集,除了在写一个存储过程外,怎末搞定?谢谢,高人!
问题是这个存储过程返回两个数据集。在报表的数据那块只能收到第一个数据集。
问题就是:第二个数据集,除了在写一个存储过程外,怎末搞定?谢谢,高人!
解决方案 »
- 菜鸟问题:求教一条SQL语句的含义
- 请教如何实现查询第20至30条数据?
- 小case,订单表设计,您们如何设计的
- 问一个傻傻的数据库快捷操作问题
- 一个左连接问题,master和slave表
- 数据库中的空白字符
- 无法处理了,请高手指明
- 在当前的查询出来的数据上!查找上一条和下一条!
- 请问如何使用VB代码创建一个与SQL SERVER数据库的ODBC数据连接?
- 哪有sql-server2000的教程下载!!
- 有誰提供一下參考,關於在300G的數據庫中對某個表的索引的刪除然後創建一個非聚集索引耗時多少?
- provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接
一个DataSet接收一个存储过程的结果集.
MultipleActiveResultSets=True干吧,无语!
不知道是否适合你这个种情况,
大概意思是:将两个DataSet作为一个结果集返回,并设定一个标识位,
然后在报表端区分出来,通过过滤将两个结果集分开显示出来,
select fields....,'1stquery' as category
from.....
..union allselect fields,...,'2nd query'
from...
....
------------------
详细参考如下连接:
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=102254
语句交替MARS 操作在服务器上同步执行。允许 SELECT 和 BULK INSERT 语句的语句交替。但是,数据操作语言 (DML) 和数据定义语言 (DDL) 语句会自动执行。将阻止任何在执行原子批处理时尝试执行的语句。服务器上的并行执行不是 MARS 功能。如果在 MARS 连接下提交两个批处理,其中一个批处理包含 SELECT 语句,另一个包含 DML 语句,DML 可以在 SELECT 语句执行过程中开始执行。但是,DML 语句必须运行完成,SELECT 语句才可以继续执行。如果两个语句在相同事务下运行,读取操作将看不到 DML 语句在 SELECT 语句开始执行后所作的任何更改。SELECT 语句中的 WAITFOR 语句在等待时不生成事务,即直到生成第一行时才生成事务。这意味着在 WAITFOR 语句等待时,无法在相同连接内执行任何其他批处理。
MARS 会话缓存如果打开启用了 MARS 的连接,将创建一个逻辑会话,这样会增加系统开销。为了使系统开销最小并提高性能,SqlClient 将 MARS 会话缓存在连接内。缓存最多可以包含 10 个 MARS 会话。用户不可调整此值。如果达到会话限制,将创建一个新会话 — 不会生成错误。缓存及其包含的会话针对特定连接;不在连接之间共享。会话释放后,除非已达到池的上限,否则,将返回池中。如果缓存池已满,会话将关闭。 MARS 会话不会过期。只在连接对象断开后才进行清理。MARS 会话缓存不会预加载。如果应用程序需要更多的会话,将加载该会话。
线程安全性MARS 操作不是线程安全的。
连接池启用 MARS 的连接像任何其他连接一样建立池连接。如果应用程序打开两个连接,一个启用了 MARS,一个禁用了 MARS,这两个连接将位于独立的池中。有关更多信息,请参见使用连接池。
url:http://msdn.microsoft.com/zh-cn/library/h32h3abf(VS.80).aspx
我谢谢楼主哈!!!建议差不多就改吧,从现实来看,去做比较现实。引用 5 楼 being21 的回复:
我也是才注意,呵呵。找了很久似乎这个选项是\true就可以返回多个结果集。可是我选上了,还是没有用。
MultipleActiveResultSets=True 干吧,无语! 这就是我 说 干吧 的意思
都改了。存储过程都拆开了。哎~