行集不支持向后滚动

时间:2013-01-02 12:45:45

标签: sql vbscript recordset 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

每当我执行上面的操作时,我都会收到错误'rowset不支持向后滚动',有什么建议吗?

2 个答案:

答案 0 :(得分:6)

adOpenDynamic未在VBScript中声明,因此等于Empty,当您分配0属性时,CursorType会转换为0adOpenForwardOnlyFind,而且仅向前移动不支持向后移动,adOpenDynamic方法需要的功能。

您应该将Recordset.CursorType = 2 'adOpenDynamic 替换为其文字值:

Option Explicit

要完全避免此类错误,请将{{1}}作为脚本的第一行。

答案 1 :(得分:0)

这是因为行集不允许向后移动;正如错误消息所示。你的代码没有使用它们;所以你应该替换

Recordset.CursorType = adOpenDynamic 同 Recordset.CursorType = adOpenForwardOnly(或等效值0)

最好完全离开这条线;默认为前向光标。