Sql server 2008 r2 从Visual Basic 6调用表值函数

Sql server 2008 r2 从Visual Basic 6调用表值函数,sql-server-2008-r2,vb6,Sql Server 2008 R2,Vb6,我有一些遗留代码需要更新,我需要添加一个使用表值函数返回值的特性。我遇到的问题是,函数返回一个表变量。函数如下所示: CREATE FUNCTION [dbo].[SomeFunction](@intKey INT) RETURNS @t TABLE (strValue VARCHAR(20)) BEGIN (....SOME CODE.....) INSERT INTO @t (strValue) SELECT @SomeValue RETURN END 我从VB调

我有一些遗留代码需要更新,我需要添加一个使用表值函数返回值的特性。我遇到的问题是,函数返回一个表变量。函数如下所示:

CREATE FUNCTION [dbo].[SomeFunction](@intKey INT)
RETURNS @t TABLE (strValue VARCHAR(20))
BEGIN 
    (....SOME CODE.....)
    INSERT INTO @t (strValue) SELECT @SomeValue
    RETURN
END
我从VB调用该函数的代码如下:

 Dim objRS As New ADODB.Recordset
 Dim objCmd As New ADODB.Command

 Set objRS = New ADODB.Recordset

 With objCmd
     .ActiveConnection = objConnection.CurrentConnection
     .CommandType = adCmdText
     .CommandText = "SELECT * FROM [dbo].[SomeFunction](?)"
     .CommandTimeout = 0
 End With

objCmd.Parameters.Append objCmd.CreateParameter("@intKey", adInteger, adParamInput)

objCmd("@intMatterID") = someObject.Key
Set objRs = objCmd.Execute

If (objRs.RecordCount > 0) Then
    someString = objRs.Fields("strValue")
End If
问题似乎是最后一段代码,我已经确认记录集不是空的。字段值似乎总是空的


因此,我假设我做得不正确,并且想知道是否有可能检索到“strValue”的值。

似乎我遇到的问题与我如何访问“strValue”有关。我实现了以下内容,它最终成功了

If (objRs.RecordCount > 0) Then
    objRs.MoveFirst
    someString = Cstr(objRs("strValue"))
End If

记录集没有记录集属性,您是说RecordCount吗?我不确定您在做什么,但返回的不是一个记录集,其中包含一行,带有一个
adChapter
type(child Recordset)字段吗?@Bob77我正在尝试从函数返回的表中获取strValue的值。此表只有一行,但表中的值因传入的键而异。