2010-11-05 98 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