以文本方式查看主题

-  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=53139)

--  作者:mosquito1003
--  发布时间:2014/6/30 17:35: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中的表变量的结果!非常感谢大虾们!!!

--  作者:有点甜
--  发布时间:2014/6/30 17:40:00
--  

 呃,你执行的存储过程,是不能返回任何值的......

 

 你要在数据库那里定义函数,返回一个对应的表,参考函数的定义去弄。


--  作者:有点甜
--  发布时间:2014/6/30 17:42:00
--  
 如果不想用函数的方法,你就要真正生成一个表,然后执行完存储过程后,在foxtable里再去查那个表