Базы данных и объект Command

В отличие от объекта Recordset, позволяющего делать простые текстовые запросы к БД, объект ADODB.Command имеет коллекцию Parameters, содержащую множество параметров Sql-запроса. Объект Command может инкапсулировать в себе запросы на добавление, получение, обновление и удаление записей в таблицах базы данных.

Для создания нового параметра используется метод объекта CommandCreateParameter, принимающий на вход имя, тип, длину (актуально для строковых типов данных) и значение параметра. Далее созданный параметр необходимо с помощью метода Append добавить в коллекцию Parameters нашего объекта Command. В тексте Sql-запроса, на месте, где должно располагаться значение параметра, ставится знак вопроса.

В данном примере извлекаются продукты категории 'SeaFood', цена которых не превышает 30$.

Set cmd = CreateObject("ADODB.Command")

cmd.CommandText =  "SELECT ProductName, UnitPrice & '$' FROM  products INNER JOIN categories " & _ 
                    "ON products.CategoryID=categories.CategoryID " & _
                    "WHERE categories.CategoryName = ? AND products.UnitPrice <= ? ORDER BY 1"

Const maxPrice = 30
Const CategoryName = "SeaFood"

Set parm1 = cmd.CreateParameter("", adChar, adParamInput, Len(CategoryName), CategoryName)
Set parm2 = cmd.CreateParameter("", adInteger, adParamInput,, maxPrice)

Call cmd.Parameters.Append(parm1)
Call cmd.Parameters.Append(parm2)

cmd.ActiveConnection = ConnectStr'открытие соединения

Set objRecordSet = cmd.Execute()

If Not objRecordSet.EOF Then

	WScript.Echo objRecordSet.GetString()

Else

	WScript.Echo "No records in recordset!"

End If

Call cmd.ActiveConnection.Close()
Вывод скрипта

Примечание: вместо команды SELECT аналогичным образом можно использовать команды INSERT, UPDATE, DELETE.