我有一个在我的 SQL 服务器数据库中运行存储过程的脚本,问题是存储过程需要一个 uniqueidentifier 参数。我有一个从数据库中获取会话 id 的函数(它是一个 nvarchar),因此 VBScript 将其设为字符串,我需要将其转换为将其传递给存储过程。
Function GetOpenSession
Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=" & Source
rs.CursorLocation = 3
rs.Open "SELECT top 1 OpenSession FROM OpenSessions with (nolock)" , conn, 3, 3
If rs.RecordCount = 0 Then
MsgBox "No Connection"
Else
GetOpenSession = rs.Fields(0).Value
End If
End Function
当我尝试执行存储过程时,我得到“强制转换规范的无效字符值”。
set cnParam = cmd.CreateParameter("@ActiveSession",72,1,,GetOpenSession)
cmd.Parameters.Append cnParam
我无法更改数据库中的任何内容,因此我需要一种方法来在我的脚本中克服这个问题。