将SQL查询中的列插入HPE UFT中的数据列

将SQL查询中的列插入HPE UFT中的数据列,sql,database,vba,hp-uft,Sql,Database,Vba,Hp Uft,这是HPE UFT中成功运行查询并显示消息框的代码。 我希望它将查询结果或至少一列查询结果存储在HPE UFT数据表中,以便以后可以对这些贷款编号运行循环 Set objConnection = CreateObject("ADODB.Connection") Set objRecordSet = CreateObject("ADODB.Recordset") objConnection.open "provider=123ABC;Server=T1;User Id=****; Passw

这是HPE UFT中成功运行查询并显示消息框的代码。 我希望它将查询结果或至少一列查询结果存储在HPE UFT数据表中,以便以后可以对这些贷款编号运行循环

Set objConnection = CreateObject("ADODB.Connection")

Set objRecordSet = CreateObject("ADODB.Recordset")

objConnection.open "provider=123ABC;Server=T1;User Id=****; 
Password=****; Database=i_prod;Trusted_Connection=Yes"

sqlQuery="SELECT Table1 AS LoanNumber, lm.loanrecordid, clm.istexasconversion as TexasConversion FROM Table1 lm WITH (NOLOCK) LEFT JOIN Table2 clm WITH (NOLOCK) ON clm.lenderdatabaseid = lm.lenderdatabaseid AND clm.loanrecordid = lm.loanrecordid Where clm.istexasconversion IS NOT NULL"

objRecordSet.open sqlQuery, objConnection

value = objRecordSet.fields.item(0)               
msgbox Value


objRecordSet.Close
objConnection.Close
Set objConnection = Nothing
Set objRecordSet = Nothing
这是SQL中使用的查询

 SELECT
   lm.loanid AS LoanNumber
   ,Column1
   ,column2 as Texas
   FROM table1 lm WITH (NOLOCK)
 LEFT JOIN table2 clm WITH (NOLOCK)
   ON clm.lenderdatabaseid = lm.lenderdatabaseid
   AND clm.loanrecordid = lm.loanrecordid

首先,如果您最初在表中定义参数名称,如下所示,则会有所帮助:

Datatable.AddParameter("LoanNumber", dtGlobal)
Datatable.AddParameter("LoanID", dtGlobal)
Datatable.AddParameter("TexasConversion", dtGlobal)
这将使用要插入的参数的名称设置全局数据表的前三列

然后,为了便于使用,将
记录集中的数据放入
数组中

myArray = objRecordSet.GetRows ' do this before you close the recordset
最后,循环二维数组,用数据填充表格:

For myLoop = 0 to UBound(myArray, 2) ' loop over the total rows
    DataTable.SetCurrentRow(myLoop + 1) ' +1 as row count starts from 1 not 0
    Datatable("LoanNumber") = myArray(0, myLoop)
    Datatable("LoanID") = myArray(1, myLoop)
    Datatable("TexasConversion") = myArray(2, myLoop)
Next
如果需要存储datatable的副本(除非计划在运行期间仅使用此数据,否则需要):


如果您在这方面有任何问题,请发表评论,我将尝试进一步解释。

您可以使用数据库输出值来输出列中的值。 创建数据库输出值的步骤:

  • 选择插入>输出值>数据库输出值
  • 创建连接字符串
  • 在查询定义中选择“手动指定SQL语句”单选按钮和最大行数
  • 在Sql语句编辑字段中插入查询
  • Datatable.Export("\\Path\To\File\To\Save.xlsx")