数据库到数组

时间:2016-03-01 19:05:16

标签: sql vbscript hp-uft sqloledb

我正在尝试编写一个VBScript UFT测试,它从表中获取一组数据(它将是100条记录)。我只会从下面的查询中看到一个列。

{{1}}

我能够在消息框中显示第一条记录,但我只是将其作为测试。我现在要做的就是将每条记录添加到一个数组中,以便稍后循环遍历它们以更改WebEdit文本框的值。

以下是我目前的代码,但我很难搞清楚这一点。

{{1}}

我假设循环返回的记录会起作用。

2 个答案:

答案 0 :(得分:2)

你的循环只会执行一次,因为你没有迭代记录,而是遍历列(字段),你只有一个。然后,当您检索该列的值时,将获得当前(即第一个)记录的值。

由于没有列,循环结束。

以下是迭代记录的方法:

Do While Not objRecordSet.EOF
    value = objRecordSet("l_Name")

    ' do something with value
    '
    objRecordSet.MoveNext
Loop

答案 1 :(得分:2)

@trincot says is correct用于解决循环ADODB.Recordset的问题,但是如果您想要记录集并放入Array则更容易

Dim data
'... (Recordset connection and execution code omitted)
If Not objRecordset.EOF Then data = objRecordset.GetRows()

GetRows()返回一个二维数组。第一个元素包含列,第二个元素包含行,例如,使用上面的data数组访问第五行的第二列,您将使用

If IsArray(data) Then
  value = data(1, 4)
End If

注意: Array变量元素从零开始为零,因此第二列为1,第五行为4

您可以使用For循环遍历记录数据,例如;

Dim row, rows

If IsArray(data) Then
  rows = UBound(data, 2)
  For row = 0 To rows
    'First column of the current row
    WScript.Echo data(0, row)
    'Second column of the current row
    WScript.Echo data(1, row)
    '... etc
  Next
End If