我使用 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
我终于得到了这个解决方案。有用。是的,它适用于 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