A: 

I usually change the parameter type of the stored procedure to varchar(38).

SQL Server makes a better job of coercing the string to a GUID when needed.

AnthonyWJones
I don't control the database, and can't change anything in it. I'm just a tester, and developers don't like changing things just to help us.
Tester101
A: 

What is the value of GetOpenSession after you have assigned it? Which datatype? It sounds like it is not compatible with type 72 (GUID), which you are stating in the CreateParameter call.

AdamRalph
It is a string. But if I try to create the parameter with type 8 (String) I get "Error converting data type nchar to uniqueidentifier."
Tester101
A: 

I believe VBScript expects GUIDs to be brace terminated. Is your Session id of the same format as the following {D6CA6263-E8E1-41C1-AEA6-040EA89BF030}

cmsjr
No and it is also stored in the database as a string.
Tester101
+1  A: 

Depending on the data type of the SELECT OpenSession, you may be able to cast/convert it in the query and VBScript may possibly keep the data type as a GUID:

SELECT top 1 CONVERT(uniqueidentifier, OpenSession)
FROM OpenSessions with (nolock)

When you use GetOpenSession or rs.Fields(0).Value, hopefully VBScript will keep it as a GUID.

The other possibility seems to be a Win32 API using CoCreateGuid and StringFromGUID2. An example is found here, but it requires external Win32 functions and a Type for GUID.

Ryan
Genius! I can't believe I didn't think of CONVERT.
Tester101
A: 

You could forget about using ADO Commands altogether and just execute the stored procedure using plain SQL.

Set rs = CreateObject("ADODB.Recordset")
rs.Open "EXEC usp_MySP '" & GetOpenSession & "'", cnn

Obviously it's terrible to build SQL commands like this, but it's just for a test, after all...

Tmdean
Just a test?! It will be a routine that is added to a suite of tests used for testing applications. Just like developers write and maintain millions of lines of code to make the application work, testers sometimes do the same to make sure the app works correctly. So no it's not just a test.
Tester101