sql - 查询SQL数据库时出现EOF和BOF错误

标签 sql vbscript

我正在尝试从 vbs 查询 SQL 数据库,但是当没有找到记录时,我收到一个错误

ADODB.Field : Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.



我想我需要使用 IF NOT 语句来捕获是否找不到记录,但我无法弄清楚它需要去哪里。
Do Until objFile.AtEndofStream
    strAppName = objFile.ReadLine

    ConnString="DRIVER={SQL Server};SERVER=aardvark002;UID=***;PWD=***;DATABASE=DEW_Users"
    SQL = "USE Win7AppData SELECT " & Chr(34) & strCountry & Chr(34) & " FROM AppsByCountry WHERE Application = '" & strAppName & "'"

    Set Connection = CreateObject("ADODB.Connection")
    Set Recordset = CreateObject("ADODB.Recordset")
    Connection.Open ConnString
    Recordset.Open SQL,Connection
    strApproval = Recordset(strCountry)
    If StrApproval = "YES" Then
        strApproval = "Approved"
    Else
        strApproval = "Denied"
    End If
    objExcel.Cells(intRow, 1).Value = strAppname 
    objExcel.Cells(intRow, 2).Value = strCountry
    objExcel.Cells(intRow, 3).Value = strApproval
    intRow = intRow + 1
Loop

最佳答案

我的 VBScript 有点生疏,但你应该能够在 Recordset 上使用 .EOF 来检查它是否在最后:

Recordset.Open SQL,Connection
If Recordset.EOF = false Then
    ' have some rows, do what you want with them
End If

W3Schools reference

关于sql - 查询SQL数据库时出现EOF和BOF错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10225551/

相关文章:

sql - 并发值修改会影响 PostgreSQL 9.1 中的单选吗?

vbscript - 根据 .txt 文件中的文本在 "MSWord"文档中创建表

vbscript - schtasks 参数禁用 "execute when user logged on"

vbscript - 如何在 VBScript 中使用 GetObject

mysql - 如何在 MySQL 查询中定义目标表?

php - 对于巨大的表格数据,使用 div 标签是否比使用 table tr 和 td 标签更快?

sql - 在 SQL/VBA 中高效地填写大量字段

sql - 从时间戳列中删除时间部分

windows - 将 vbs 脚本的快捷方式固定到任务栏(W2008 服务器)

windows - 如何自动关闭 VBScript 数千个 MsgBox