2015-08-05 1 views
0

Я Извлечение результатов запроса из базы данных с помощью этого VBS-код:Как экспортировать результат запроса в текстовый файл-

strSQL = "select * from EMP" 
Set rsDB = objDBConn.Execute(strSQL) 

Теперь я хочу, чтобы получить этот результат экспортированного в текстовом-файл.

Как добиться этого с помощью qtp?

ответ

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)), чтобы получить отдельные столбцы из набора результатов. число - номер столбца, начиная с нуля.
Если вы не знаете, сколько столбцов используется для каждого цикла, как показано в приведенном выше коде.

(Простой пример для чтения/записи txt файла с vbscript: https://stackoverflow.com/a/2198973/4654008)

+1

HI благодарит за ваш ответ. Если я не знаю, сколько количество столбцов доступно, как я могу написать все значения в одной строке. В вашем коде я могу просто добавить (resultset (2) (3) .. но я не хочу делать это вручную .. – rookie

+1

@rookie: Я отредактировал ответ и добавил «Для каждой петли». Это будет динамически проходить поля набора результатов. – Thomas

1

Использование .GetString(), вроде:

Set rsDB = objDBConn.Execute(strSQL) 
tsOut.Write rsDB.GetString(adClipString, , ",", vbCrLf, "Null") 

(Очевидно, что вам нужна открытая TextStream и Const определение adClipString)

Update WRT комментарий:

Sample code

+0

Не могли бы вы привести мне пример. Извините, что я не сделал этого раньше – rookie