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)
HI благодарит за ваш ответ. Если я не знаю, сколько количество столбцов доступно, как я могу написать все значения в одной строке. В вашем коде я могу просто добавить (resultset (2) (3) .. но я не хочу делать это вручную .. – rookie
@rookie: Я отредактировал ответ и добавил «Для каждой петли». Это будет динамически проходить поля набора результатов. – Thomas