我在SQL Server 2008中有一个存储过程,当我在SSMS中运行时,它会完美地返回我的数据。当我从VB脚本代码调用存储过程时,它不会返回数据。
存储过程代码:
ALTER Procedure [dbo].[getstuff]
(@CompID int = NULL,
@FranID int = NULL,
@Type nvarchar (50) = NULL)
SELECT *
FROM Table1
WHERE CompID = @CompID
AND (FranID = @FranID OR @FranID IS NULL)
AND (PType = @Type OR @Type IS NULL)
我在SSMS中手动运行存储过程,如 -
DECLARE @return_value int
EXEC @return_value = [dbo].[getstuff]
@CompID = 1,
@FranID = 22,
@Type = NULL
我得到了我期待的确切数据
当我像这样运行VBScript时 -
strSql = "getstuff"
DBConn.AddParameter "@CompID", 1
DBConn.AddParameter "@FranID", 22
DBConn.AddParameter "@Type", NULL
Set TestRS = DBConn.GetRecordset(adCmdStoredProc, strSQL)
我没有得到任何数据。但如果我没有@Type参数 -
就这样运行 strSql = "getstuff"
DBConn.AddParameter "@CompID", 1
DBConn.AddParameter "@FranID", 22
Set TestRS = DBConn.GetRecordset(adCmdStoredProc, strSQL)
我收回了数据。我需要能够将NULL或实际数据传递给@FranID和@Type。这让我感到疯狂,任何帮助都会非常感激!
答案 0 :(得分:1)
我不应该按照建议设置参数。