Sql 数据库到阵列

Sql 数据库到阵列,sql,vbscript,hp-uft,sqloledb,Sql,Vbscript,Hp Uft,Sqloledb,我正在尝试编写一个VBScript UFT测试,从一个表中获取一组数据,它将是100条记录。我只想选择一列,你可以从下面的查询中看到 从承租人中选择前100名l_名称 我能够在消息框中显示第一条记录,但我只是做了一个测试。我现在要做的是将每条记录添加到一个数组中,以便以后可以循环使用它们来更改WebEdit文本框的值 下面是我当前的代码,但是我有点难以理解 Dim数据库查询 DBQuery=从承租人中选择前100名l_名称 openprovider=sqloledb.1;Server=TestS

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

从承租人中选择前100名l_名称 我能够在消息框中显示第一条记录,但我只是做了一个测试。我现在要做的是将每条记录添加到一个数组中,以便以后可以循环使用它们来更改WebEdit文本框的值

下面是我当前的代码,但是我有点难以理解

Dim数据库查询 DBQuery=从承租人中选择前100名l_名称 openprovider=sqloledb.1;Server=TestServer;用户Id=用户;密码=Test123;数据库=DBTest objRecordSet.opendbquery,objConnection '返回结果集' 对于ObjRecordset.Fields.Item中的每个元素 Value=objRecordSet.fields.itemelement MsgBox值 下一个 “释放资源” objRecordSet.Close 对象连接。关闭 Set objConnection=Nothing Set objRecordSet=Nothing
我假设通过返回的记录进行循环是可行的。

您的循环将只执行一次,因为您不是在记录上进行迭代,而是在列字段上进行迭代,其中只有一个字段。然后检索该列的值时,将获得当前记录(即第一条记录)的值

由于不再有列,循环结束

下面是迭代记录的方式:

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

    ' do something with value
    '
    objRecordSet.MoveNext
Loop

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

由于不再有列,循环结束

下面是迭代记录的方式:

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

    ' do something with value
    '
    objRecordSet.MoveNext
Loop
解决ADODB.Recordset循环问题的方法是什么?但是如果您想获取记录集并将其放入数组中,有一种更简单的方法

模糊数据 '... 省略记录集连接和执行代码 如果不是objRecordset.EOF,则data=objRecordset.GetRows GetRows返回一个二维数组。第一个元素包含列,第二个元素包含行,例如,使用上面的数据数组访问第五行的第二列

如果是IsArraydata那么 值=数据1,4 如果结束 注意:数组变量元素的序数从零开始,因此第二列是1,第五行是4

您可以使用类似For的循环遍历记录数据

昏暗的一排,一排 如果是IsArraydata那么 行=UBounddata,2 对于行=0到行 '当前行的第一列 WScript.Echo数据0,第行 '当前行的第二列 WScript.Echo数据1,第行 '... 等 下一个 如果结束 解决ADODB.Recordset循环问题的方法是什么?但是如果您想获取记录集并将其放入数组中,有一种更简单的方法

模糊数据 '... 省略记录集连接和执行代码 如果不是objRecordset.EOF,则data=objRecordset.GetRows GetRows返回一个二维数组。第一个元素包含列,第二个元素包含行,例如,使用上面的数据数组访问第五行的第二列

如果是IsArraydata那么 值=数据1,4 如果结束 注意:数组变量元素的序数从零开始,因此第二列是1,第五行是4

您可以使用类似For的循环遍历记录数据

昏暗的一排,一排 如果是IsArraydata那么 行=UBounddata,2 对于行=0到行 '当前行的第一列 WScript.Echo数据0,第行 '当前行的第二列 WScript.Echo数据1,第行 '... 等 下一个 如果结束