在线等待,请问除了临时表以外,有没有什么方法能够通过存储过程传递多给记录集给应用程序

goneaway 2006-07-13 09:58:10
请问除了临时表以外,有没有什么方法能够通过存储过程传递多给记录集给应用程序,如java
...全文
239 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcuandy 2006-07-15
  • 打赏
  • 举报
回复
其实这些东西做的多了自然就知道了. 上面的例子是写给楼主看的.
fcuandy 2006-07-15
  • 打赏
  • 举报
回复
楼上讲的是在.net下ado.net中.
我来说说ado里面怎么获得多个记录集.
1,创建测试表
CREATE TABLE t(id int identity(1,1),name varchar(10))
INSERT t SELECT 'a' UNION SELECT 'b' UNION SELECT 'c'

CREATE TABLE t1(id int identity(1,1),name varchar(10))
INSERT t SELECT 'd' UNION SELECT 'e' UNION SELECT 'f'

给这两结构相同的表插入了不同的记录,以便后面观查.

2,创建存储过程
CREATE proc test
as
begin
select * from t1
select * from t
end

3,调用.这里以asp为例子.

ConnStr = "Provider = Sqloledb;.....略"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
Set cmd = Server.CreateObject("Adodb.Command")
cmd.commandtype=4
cmd.activeconnection=conn
cmd.commandtext="test"
set rs=cmd.execute

do while not rs.eof
response.write rs(1) & "<br>"
rs.movenext
loop
set rs1=rs.nextrecordset
do while not rs1.eof
response.write rs1(1) & "<br>"
rs1.movenext
loop


结果输出了
d
e
f
a
b
c
说明已经读取了两个记录集.

其实就是利用了Recordset对象的nextRecordset方法.

无论是用 vb,asp,还是c++使用ado来操作具有多个记录集返回的存储过程(或批语句)时,都使用这个ado的方法
点点星灯 2006-07-15
  • 打赏
  • 举报
回复
在前台中定义DATASET,将这个数据集填充,
DATASET.TABLE(0) 表示第一个表
DATASET.TABLE(1) 表示第二个表
点点星灯 2006-07-15
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[selectmultiTable] AS

select * from tableA
select * from tableB

--这样存储过程就返回了两个数据集啊
goneaway 2006-07-14
  • 打赏
  • 举报
回复
我是问除了临时表以外,有没有什么方法能够通过存储过程传递多个记录集给应用程序。
fcuandy,存储过程本来就可以返回记录集给应用程序,有方法吗;请赐教呀,8)
fcuandy 2006-07-14
  • 打赏
  • 举报
回复
存储过程本来就可以返回记录集给应用程序.

不知道你想表达什么?
glorier 2006-07-14
  • 打赏
  • 举报
回复
多给记录集给应用程序----念不通
liangpei2008 2006-07-14
  • 打赏
  • 举报
回复
好像只能用临时表了!
goneaway 2006-07-14
  • 打赏
  • 举报
回复
晕,有人知道吗?确认不可以,也给分
goneaway 2006-07-13
  • 打赏
  • 举报
回复
自己顶一下,有好答案,追加给分!!!

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧