0
我有一些遺留代碼需要更新,我需要添加一個使用表值函數返回值的功能。我遇到的問題是該函數返回一個表變量。該功能是一樣的東西如下:從Visual Basic中調用表值函數6
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
這個問題似乎是代碼的最後一塊,我已經證實,記錄集不是空的。 Fields值似乎總是NULL。
所以我假設我做這個不正確,並想知道是否有可能檢索「strValue」的值。
一個Recordset沒有Recordset屬性,也許你的意思是RecordCount?我不確定你在做什麼,但是不會返回一個Recordset,它包含一行'adChapter'類型(子Recordset)字段? – Bob77
@ Bob77我想從函數返回的表中獲取strValue的值。此表只會有一行,但表中的值因傳入的鍵而異。 – gestalt