1

首先让我说,当我需要一些代码方面的帮助时,我很高兴有一个地方可以去,当我看到人们试图提供帮助时,我更加感激,所以对于这里的每个人,谢谢你的关注我的问题/问题,即使你没有答案。

话虽如此,关于我的问题/问题:

我一直试图让它工作,但我似乎找不到语法错误!:-(

谁能帮帮我吗...

这是代码:

dim strPathtoCSVFolder,strPathtoCSVFile,strPathtoCSVFileTWO

strPathtoCSVFolder="D:\classic_asp\test\" & Request.QueryString("XTNO") & "\Data\"
strPathtoCSVFile="Unit_" & Request.QueryString("XTNO") & "_Year_" & Request.QueryString("year") & "_Q_" & Request.QueryString("q") & "_MERGE_DataCsv.csv"
strPathtoCSVFileTWO="Unit_" & Request.QueryString("XTNO") & "_Year_" & Request.QueryString("year") & "_Q_" & Request.QueryString("q") & "_MERGE_DataCsv_SORTED.csv"

Set Conn = CreateObject("ADODB.Connection")
Set RS = CreateObject("ADODB.Recordset")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPathtoCSVFolder & ";Extended Properties=""text;HDR=YES;FMT=Delimited"""
dim strDirInfoX
strDirInfoX="SELECT STATE, SUM(GALLONS) as Total FROM " & strPathtoCSVFile & " GROUP BY STATE "

'''''' response.write strDirInfoX
dim strTxttoMem

dim strsource
strsource="RS.Open " & strDirInfoX & " , Conn, 1, 3, &H0001"
RS.Open strsource
'response.write strsource

redim FieldNames(rs.fields.count)
redim FieldTypes(rs.fields.count)
For i = 0 To (rs.Fields.Count - 1)
    FieldNames(i) = cstr(trim(rs.Fields.Item(i).Name))
    FieldTypes(i) = cstr(trim(rs.Fields.Item(i).Type))
Next
RS.Close

RS.Open strDirInfoX, Conn, 3, 3, &H0001
Do Until RS.EOF
''''    for i=0 to ubound(FieldNames)-1
'''     response.write(FieldNames(i) & " = " & RS.Fields.Item(FieldNames(i)) & "<br>")

strTxttoMem=strTxttoMem & RS("STATE") & RS("total")

''  next
    RS.MoveNext
Loop
RS.Close
Conn.Close

dim fs,tfile
set fs=Server.CreateObject("Scripting.FileSystemObject")
set tfile=fs.CreateTextFile(strPathtoCSVFolder & strPathtoCSVFileTWO)


tfile.WriteLine(strTxttoMem)
tfile.close
set tfile=nothing
set fs=nothing

非常感谢您的帮助...

4

4 回答 4

3

好吧,没有运行您的代码,我在这部分发现了一个错误:

dim strsource 
strsource="RS.Open " & strDirInfoX & " , Conn, 1, 3, &H0001" 
RS.Open strsource 

或者为了缩短它,你正在这样做:

RS.Open "RS.Open " & strDirInfoX & " , Conn, 1, 3, &H0001" 

将其更改为RS.Open strDirInfoX, Conn, 1, 3, &H0001,该部分将运行得更好。

于 2012-05-25T12:23:01.063 回答
1

这几乎是不可能回答的,可能存在多个错误,并且很大程度上取决于之前声明的内容,例如,显式选项会产生巨大的差异(并且是可取的)。

由于在浏览器中调试充其量是困难的,因此您复制此代码(我猜它来自一个 asp 文件)并将其放入 vbs 脚本中,将 response.write 替换为 wscript.echo 并运行代码。然后你在某行得到一个错误,更正它等等,然后用 response.write 替换回声,你就完成了。

我还建议使用 Firefox 和 Firebug 插件进行测试,你会在那里获得更多调试信息,至少使用 Chrome 或 IE 中的开发人员视图

成功..

于 2012-05-25T09:25:56.063 回答
0

在 VBScript 上工作了一段时间,但 tfile.close 不应该是 tfile.Close 吗?

于 2012-05-24T22:50:38.810 回答
0

您是否尝试将文件作为文本文件读取,而不是使用 ADODB 连接来连接它?由于它是 CSV 文件,因此您可以将其作为纯文本文件读取。您可以使用逗号和循环拆分内容并获得您想要的内容。

如果您想使用 ADODB 连接访问它,请尝试使用 xlsx 扩展名保存文件(通过代码复制内容或手动保存。相同的代码可能有效)。

无耻地在我的 ADO 博客上添加链接

http://www.blogger.com/blogger.g?blogID=3033014869583885023#editor/target=post;postID=8274119342550879092

于 2012-05-25T10:39:44.477 回答