Como associar parâmetros a objetos de comando no ADO com VBScript?
Eu tenho trabalhado um ADO VBScript que precisa aceitar parâmetros e incorporar esses parâmetros na seqüência de consulta que é passada no banco de dados. Continuo recebendo erros quando o Objeto do Conjunto de Registros tenta abrir. Se eu passar uma consulta sem parâmetros, o conjunto de registros será aberto e eu posso trabalhar com os dados. Quando executo o script por meio de um depurador, o objeto de comando não mostra um valor para o objeto de parâmetro. Parece-me que estou perdendo algo que associa o objeto Command e o objeto Parameter, mas não sei o quê. Aqui está um pouco do código VBScript:
...
'Open Text file to collect SQL query string'
Set fso = CreateObject("Scripting.FileSystemObject")
fileName = "C:\SQLFUN\Limits_ADO.sql"
Set tso = fso.OpenTextFile(fileName, FORREADING)
SQL = tso.ReadAll
'Create ADO instance'
connString = "DRIVER={SQL Server};SERVER=myserver;UID=MyName;PWD=notapassword; Database=favoriteDB"
Set connection = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
connection.Open connString
cmd.ActiveConnection = connection
cmd.CommandText = SQL
cmd.CommandType = adCmdText
Set paramTotals = cmd.CreateParameter
With paramTotals
.value = "tot%"
.Name = "Param1"
End With
'The error occurs on the next line'
Set recordset = cmd.Execute
If recordset.EOF then
WScript.Echo "No Data Returned"
Else
Do Until recordset.EOF
WScript.Echo recordset.Fields.Item(0) ' & vbTab & recordset.Fields.Item(1)
recordset.MoveNext
Loop
End If
A string SQL que eu uso é bastante padrão, exceto que eu quero passar um parâmetro para ele. É algo como isto:
SELECT column1
FROM table1
WHERE column1 IS LIKE ?
Eu entendo que o ADO deve substituir o "?" com o valor do parâmetro que atribuo no script. O problema que estou vendo é que o objeto Parameter mostra o valor correto, mas o campo de parâmetro do objeto de comando é nulo de acordo com meu depurador.