无法在VBScript中获取SELECT SQL查询结果

问题描述 投票:0回答:1

我使用 VBScript 访问 SQL Server,配置没问题,因为它在插入新值甚至更改列名称时都可以工作。

但是,现在我想获取列的名称,并且我能够获取第一条记录,但不能获取第二条和第三条记录。

SQL查询结果的格式是单列三行输出。

这是 文档 但我无法弄清楚任何事情:(.

我的代码:

Function getColumnNames(tableName)
    Dim sql, rst
    rst = "result1, result2, result3" 'resultX are string tags
    sql = "SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('" & "precios"& "') ORDER BY column_id ASC"
    $DBExecute("sqlExpress", sql, rst)
    MsgBox $result1
    MsgBox $result2
    MsgBox $result3
End Function

$result1 正确存储值,而 $result2 和 $result3 为空。我尝试了几种方法,首先定义为:

rst = "result" 'result is a string array from 0 to 2
rst = "result(1), result(2), result(3)" 'result is a string array from 0 to 2

没有人工作。谁能帮助我吗?谢谢。

注意:我正在使用 Aveva Edge SCADA 软件或 Indusoft

scada
1个回答
0
投票

我终于得到了这个解决方案。有用。是的,它适用于 Indusoft o Aveva Edge。

Function getColumnNames(tableName)
    Dim sql, numCur, numRows, row, txt
    sql ="Select name FROM sys.columns WHERE object_id = OBJECT_ID('" & tableName & "') ORDER BY column_id Asc"
    numCur = $DBCursorOpenSQL("sqlExpress", sql)
    numRows = $DBCursorRowCount(numCur)

    For row=1 To numRows
      $namesInDB[row-1] =  $DBCursorGetValue(numCur,"name")
      $DBCursorNext(numCur)
    Next

    $variablesInDB = numRows
    $DBCursorClose(numCur)
   
End Function
© www.soinside.com 2019 - 2024. All rights reserved.