2010-11-05 101 views
0

我有一個連接到db2和recset的vbscript獲取long varchar 18000(包含xml消息)。 問題是,在VBScript中的變量長度只有250. 好吧,我已經劃分recset陣列(50)每個字符串250個字符。 然後當我試圖從數組傳遞第一個字符串文件它會引發錯誤。 因爲在數組(0)字符串中有很多引號。我如何將結果保存到文件?長變量寫入文件

sql = "select message_data from messages where MESSAGE_ID = '5461654648464'" 

Set objConnection = CreateObject("ADODB.Connection") 
objConnection.ConnectionString = "Provider=ibmdadb2; DSN=TEST; UID=user; PWD=password" 
objConnection.Open 
Set recset = CreateObject("ADODB.Recordset") 

recset.Open sql,objConnection 

if recset.EOF then WScript.Echo "No found" else splt recset("message_data") end if 

recset.Close 
objConnection.Close 

function splt (strg) 
dim arr(50) 
Set fso = CreateObject("Scripting.FileSystemObject") 
sFolder = "C:\jdk1.3\temp\arch" 
Set NewFile = fso.CreateTextFile(sFolder&"\file.txt", True) 

if len(strg) > 250 then ll = round(len(strg)/250, 0) + 1 

for i = 0 to ll 
arr(i) = left(right(strg, abs(Cint(len(strg))-250*i)), 250) 

txt = arr(i) 

NewFile.Write txt 
next 

NewFile.Close 
End function 
+0

你是什麼意思「vbscript中的變量長度只有250」?這不是一個正常的限制。 – NotMe 2010-11-05 15:02:08

+0

你能給出你所看到的確切的錯誤信息嗎? – NotMe 2010-11-05 15:04:58

+0

無效的前處理或調用參數字符串: NewFile.Write txt – Ruslan 2010-11-05 15:09:44

回答

1

@Ruslan:確保該文件存在第一(它可以只是一個空白的文本文件),我建議你也

Dim arr(50), fso, sFolder, NewFile, ll, txt, i 

更新功能,並在添加Option Explicit權文件頂部也是如此。

+0

@Ruslan:如果這不能解決問題,您是否可以發佈產生錯誤的數據字符串的一部分(250或500個字符是理想的)? – stealthyninja 2010-11-05 17:29:17