我有一个脚本在我的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
我无法在数据库中更改任何内容,因此我需要一种在我的脚本中克服这个问题的方法。