以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  sql表变量的加载  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55783)

--  作者:mosquito1003
--  发布时间:2014/8/23 8:38:00
--  sql表变量的加载
我SQL数据库有一个存储过程,如下:
CREATE PROCEDURE Hrdtest01
As
declare @Temp table(
BillNo nvarchar(20)
,ProductNo nvarchar(20)
,ProductName nvarchar(100)
,Specification nvarchar(100)
)
Insert Into @Temp(BillNo,ProductNo,ProductName,Specification)
       Select BillNo,ProductNo,ProductName,Specification from ERun_8..PD_Product
       Where ProductNo Like \'374%\'
Select BillNo as 单据编号,ProductNo as 料号,ProductName as 品名,Specification as 规格
from @Temp Order by ProductNo
Go
然后在Foxtable的代码如下:
Dim sqlstr02 As String = "Exec Hrdtest01"
Dim cmd As New SQLCommand
cmd.ConnectionName = “sqlname”
cmd.CommandText = sqlstr02
Dim dt As DataTable = cmd.ExecuteReader
MessageBox.Show(dt.DataRows.Count)
Tables("SQLTest_Table1").DataSource = dt
运行后,发现
dt.DataRows.Count=0
而且加载表也是不存在的表!
请问该如何可以读取sql中的表变量的结果!非常感谢大虾们!!!(这个很重要,最好给个例子什么的!)

--  作者:Bin
--  发布时间:2014/8/23 9:01:00
--  
无法 读取变量的. 只能返回表.
--  作者:mosquito1003
--  发布时间:2014/8/23 9:18:00
--  
有什么设计思路吗?帮忙提供下!
--  作者:Bin
--  发布时间:2014/8/23 9:29:00
--  
狐表只支持返回表
--  作者:逛逛
--  发布时间:2014/8/23 10:04:00
--  

试试这样

 

CREATE PROCEDURE Hrdtest01
As
declare @Temp table(BillNo   nvarchar(20),
                              ProductNo  nvarchar(20),
                              ProductName  nvarchar(100),
                              Specification  nvarchar(100))

set nocount on

Insert Into @Temp(BillNo,ProductNo,ProductName,Specification)
       Select BillNo,ProductNo,ProductName,Specification from ERun_8..PD_Product
       Where ProductNo Like \'374%\'

set nocount off

Select BillNo as 单据编号,ProductNo as 料号,ProductName as 品名,Specification as 规格
from @Temp Order by ProductNo
Go


--  作者:mosquito1003
--  发布时间:2014/8/23 11:10:00
--  
多谢逛逛了,可以成功读取表变量了!