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)

Лучше вообще оставить черту; по умолчанию используется курсор вперед.

Другие вопросы по тегам