我正在尝试编写一个VBScript UFT测试,它从表中获取一组数据(它将是100条记录)。我只会从下面的查询中看到一个列。
{{1}}
我能够在消息框中显示第一条记录,但我只是将其作为测试。我现在要做的就是将每条记录添加到一个数组中,以便稍后循环遍历它们以更改WebEdit文本框的值。
以下是我目前的代码,但我很难搞清楚这一点。
{{1}}
我假设循环返回的记录会起作用。
答案 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