Rowset не поддерживает прокрутку назад
Я пытаюсь запросить базу данных MySQL с помощью приведенного ниже кода:
'declare the variables
Dim Connection
Dim Recordset
Dim SQL
'declare the SQL statement that will query the database
SQL = "SELECT * FROM CUSIP"
'create an instance of the ADO connection and recordset objects
Set Connection = CreateObject("ADODB.Connection")
Set Recordset = CreateObject("ADODB.Recordset")
'open the connection to the database
Connection.Open "DSN=CCS_DSN;UID=root;PWD=password;Database=CCS"
Recordset.CursorType=adOpenDynamic
'Open the recordset object executing the SQL statement and return records
Recordset.Open SQL,Connection
Recordset.MoveFirst
If Recordset.Find ("CUSIP_NAME='somevalue'") Then
MsgBox "Found"
Else
MsgBox "Not Found"
End If
'close the connection and recordset objects to free up resources
Recordset.Close
Set Recordset=nothing
Connection.Close
Set Connection=nothing
Всякий раз, когда я выполняю вышеупомянутое, я получаю ошибку "набор строк не поддерживает прокрутку назад", какие-либо предложения?
2 ответа
adOpenDynamic
не объявлен в VBScript и поэтому равен Empty
, который преобразуется в 0
когда вы назначаете CursorType
имущество.0
является adOpenForwardOnly
и вперед только не поддерживает движение назад, способность Find
метод хочет.
Вы должны заменить adOpenDynamic
с его буквальным значением:
Recordset.CursorType = 2 'adOpenDynamic
Чтобы вообще избежать этого класса ошибок, поместите Option Explicit
в первой строке вашего скрипта.
Это связано с тем, что набор строк не допускает перемещения назад; как следует из сообщения об ошибке. Ваш код не использует их; поэтому вы должны заменить линию
Recordset.CursorType=adOpenDynamic with Recordset.CursorType=adOpenForwardOnly (или эквивалентное значение 0)
Лучше вообще оставить черту; по умолчанию используется курсор вперед.