我正在使用此vbs代码从DataBase获取查询结果:
strSQL = "select * from EMP"
Set rsDB = objDBConn.Execute(strSQL)
现在我想将此结果导出到txt文件。
如何使用qtp实现这一目标?
答案 0 :(得分:1)
使用.GetString(),有点像:
Set rsDB = objDBConn.Execute(strSQL)
tsOut.Write rsDB.GetString(adClipString, , ",", vbCrLf, "Null")
(显然你需要一个开放的Textstream和adClipString的Const定义)
更新评论:
答案 1 :(得分:1)
set database = createobject ("ADODB.connection")
connectionString = "Driver={SQL Server};Server=" + sql_server + ";Uid=" + sql_user + ";Pwd=" + sql_password + ";"
database.ConnectionString = connectionString
database.Open
sql = "select * from [testdb].[dbo].[table1]"
set resultset = database.Execute(sql)
Set objFSO=CreateObject("Scripting.FileSystemObject")
outFile="c:\output.txt"
Set objFile = objFSO.CreateTextFile(outFile,True)
Dim row, first_field
while not resultset.EOF
row = ""
first_field = true
For Each field In resultset.Fields
if (first_field = true) then
row = field
first_field = false
else
row = row & ";" & field
end if
Next ' field
objFile.Write row & vbCrLf
resultset.MoveNext
wend
objFile.Close
如果您有固定的列数:
使用CStr(resultset(0))从结果集中获取单独的列。数字是列的编号,从零开始。
如果您不知道有多少列使用For Each Loop,如上面的代码所示。
(使用vbscript读取/写入txt文件的简单示例:https://stackoverflow.com/a/2198973/4654008)