2013-07-18 3 views
1

Я просто пытаюсь записать результаты запроса в файл .txt. Я догнал и, похоже, не продвинулся дальше.vbs write from recordset

' # writes records to a .txt file 
Wscript.timeout = 600 
Const adLockBatchOptimistic = 4 
Const adUseClient = 3 
Const writeFile = "C:\Path\CallLog.txt" 
Dim strWrite, strSQL, strResult 
Set conn = CreateObject("ADODB.Connection") 
conn.ConnectionTimeout=30 
conn.CommandTimeout=30 
conn.Open "Provider=SQLOLEDB;Data Source=Server;Trusted_Connection=Yes;" & _ 
      "Initial Catalog=Database;User ID=User;Password=Password;" 
Set rs = CreateObject("ADODB.Recordset") 
strSQL = "SELECT fld1, fld2, " & _ 
     "fld3, fld4, fld5, fld6, fld7, fld8, fld9" & _ 
     "FROM Database.dbo.[table]" 
'conn.Execute strSQL 
rs = strSQL, conn ' <- this line causes an error. 
Open writeFile For Ouput As #1 
Do Until rs.EOF 
    strResult = rs 
    Print #1, strResult 
    rs.MoveNext 
Loop 
Close #1 
rs.Close 
Set rs = Nothing 
+0

какие ошибки вы получаете? – ApolloSoftware

+0

Строка: 17 Char: 12 Ошибка: Ожидаемый конец выписки Код: 800A0401 Источник: ошибка компиляции Microsoft VBScript. - Строка 17, char 12 is: rs = strSQL, conn – Archias

+0

rs.Open strSQL, conn – ApolloSoftware

ответ

0

Хорошо, мы собираемся попробовать что-то другое. Попробуйте код ниже:

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set writeFile = objFSO.OpenTextFile("C:\Path\CallLog.txt", 1) 

Wscript.timeout = 600 
Const adLockBatchOptimistic = 4 
Const adUseClient = 3 
Dim strWrite, strSQL, strResult 
Set conn = CreateObject("ADODB.Connection") 
conn.ConnectionTimeout=30 
conn.CommandTimeout=30 
conn.Open "Provider=SQLOLEDB;Data Source=Server;Trusted_Connection=Yes;Initial 
Catalog=Database;User ID=User;Password=Password;" 
Set rs = CreateObject("ADODB.Recordset") 
strSQL = "SELECT fld1, fld2, " & _ 
"fld3, fld4, fld5, fld6, fld7, fld8, fld9" & _ 
"FROM Database.dbo.[table]" 
'conn.Execute strSQL 
rs.Open strSQL, conn ' <- this line causes an error. 

On Error Resume Next 

Do Until rs.EOF 
    strResult = rs 
    writeFile.WriteLine strResult 
    rs.MoveNext 
Loop 
rs.Close 
Set rs = Nothing 
4

В этом:

Open writeFile For Ouput As #1 

не VBScript. См. the docs, чтобы узнать, как создать-открыть файл txt. Стандартный путь низких технологий писать записей ('s контента) в текстовый файл является

tsOut.Write oRS.GetString(adClipString, , sFSep, sLSep, "NULL") 

Это точно одна линия испортить - если вы открыли выходной файл tsOut, то recodset OrS и определены adClipString (2), разделитель полей sFSep (например, «,» или vbTab) и разделитель строк sLSep (например, vbCrLf).

+0

Спасибо, что с вашей помощью и Apollo, и небольшим количеством исследований я смог выполнить эту задачу. – Archias