У меня есть скрипт, который запускает хранимую процедуру в моей базе данных SQL-сервера, проблема в том, что хранимая процедура принимает параметр uniqueidentifier. У меня есть функция, которая получает идентификатор сеанса из базы данных (которая является 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
Я ничего не могу изменить в базе данных, поэтому мне нужен способ преодолеть это в моем скрипте.