如何将查询结果导出到 txt 文件
How to export a query result to a txt-file
我正在使用此 vbs 代码从数据库中获取查询结果:
strSQL = "select * from EMP"
Set rsDB = objDBConn.Execute(strSQL)
现在我想将这个结果导出到一个 txt 文件中。
如何使用 qtp 实现此目的?
使用.GetString(),有点像:
Set rsDB = objDBConn.Execute(strSQL)
tsOut.Write rsDB.GetString(adClipString, , ",", vbCrLf, "Null")
(显然你需要一个开放的 Textstream 和 adClipString 的 Const 定义)
更新评论:
Sample code
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 循环,如上面的代码所示。
(使用 vbscript 的 read/write txt 文件的简单示例:)
我正在使用此 vbs 代码从数据库中获取查询结果:
strSQL = "select * from EMP"
Set rsDB = objDBConn.Execute(strSQL)
现在我想将这个结果导出到一个 txt 文件中。
如何使用 qtp 实现此目的?
使用.GetString(),有点像:
Set rsDB = objDBConn.Execute(strSQL)
tsOut.Write rsDB.GetString(adClipString, , ",", vbCrLf, "Null")
(显然你需要一个开放的 Textstream 和 adClipString 的 Const 定义)
更新评论:
Sample code
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 循环,如上面的代码所示。
(使用 vbscript 的 read/write txt 文件的简单示例:)