Asp classic 在记录集中读取CSV?

Asp classic 在记录集中读取CSV?,asp-classic,vbscript,recordset,Asp Classic,Vbscript,Recordset,首先,我要说,当我需要一些代码方面的帮助时,我非常高兴能有一个地方可以去,当我看到有人试图提供帮助时,我更加感激,所以这里的每个人都感谢你关注我的问题/问题,即使你没有答案 话虽如此,关于我的问题: 我一直试图让它工作,但我似乎找不到语法错误!!:-( 谁能帮帮我 代码如下: dim strPathtoCSVFolder,strPathtoCSVFile,strPathtoCSVFileTWO strPathtoCSVFolder="D:\classic_asp\test\" & Re

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

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

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

谁能帮帮我

代码如下:

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
dim strPathtoCSVFolder、strpathtocsvile、strpathtocsviletwo
strPathtoCSVFolder=“D:\classic\u asp\test\”和Request.QueryString(“XTNO”)和“\Data\”
strPathtoCSVFile=“Unit”&Request.QueryString(“XTNO”)和“&u Year”&Request.QueryString(“Year”)和“&u Q”&Request.QueryString(“Q”)和“&u MERGE\u DataCsv.csv”
strpathtocsviletwo=“Unit”&Request.QueryString(“XTNO”)和“&u Year”&Request.QueryString(“Year”)和“&u Q”&Request.QueryString(“Q”)和“&u MERGE\u DataCsv\u SORTED.csv”
Set Conn=CreateObject(“ADODB.Connection”)
Set RS=CreateObject(“ADODB.Recordset”)
连接打开“Provider=Microsoft.Jet.OLEDB.4.0;数据源=“&strPathtoCSVFolder&“Extended Properties=”“text;HDR=YES;FMT=Delimited”“”
暗斯特林福克斯
strdrinfox=“从“&strpathtocsvile&”按州分组”中选择州,总和(加仑)作为总计
回答,写strDirInfoX
暗色丝网织物
暗光源
strsource=“RS.Open”和strDirInfoX&”,康涅狄格州,1、3和H0001
开放strsource
'response.write strsource
redim字段名(rs.fields.count)
redim字段类型(rs.fields.count)
对于i=0到(rs.Fields.Count-1)
字段名称(i)=cstr(trim(rs.字段.项目(i).名称))
字段类型(i)=cstr(微调(rs字段项目(i).类型))
下一个
RS.Close
康涅狄格州第3、3和H0001号公开赛
直到R.EOF为止
''对于i=0到ubound(字段名)-1
''响应.写入(字段名(i)&“=”&RS.Fields.Item(字段名(i))&“
”) 标准交易量=标准交易量和交易量(“州”)和交易量(“总计”) ”“下一个 下一个 环 RS.Close 康涅狄格州关闭 dim-fs,tfile 设置fs=Server.CreateObject(“Scripting.FileSystemObject”) set tfile=fs.CreateTextFile(strPathtoCSVFolder&strpathtocsviletwo) tfile.WriteLine(标准文本) tfile.close set tfile=nothing 设置fs=nothing

非常感谢您的帮助…

在VBScript上工作了一段时间,但不应使用tfile.close be tfile.close?

在VBScript上工作了一段时间,但不应使用tfile.close be tfile.close?

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

由于在浏览器中调试最多也很困难,所以您可以复制此代码(我猜它来自asp文件),然后将其放入vbs脚本中,将response.write替换为wscript.echo,然后运行代码。 然后你在某一行得到一个错误,纠正它,以此类推,然后用response替换echos

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


成功..

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

由于在浏览器中调试最多也很困难,所以您可以复制此代码(我猜它来自asp文件),然后将其放入vbs脚本中,将response.write替换为wscript.echo,然后运行代码。 然后你在某一行得到一个错误,纠正它,以此类推,然后用response替换echos

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


成功..

您是否尝试将该文件作为文本文件读取,而不是使用ADODB连接连接到该文件?由于它是CSV文件,您可能可以将其作为纯文本文件读取。您可以使用逗号和循环分割内容,并获得所需内容

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

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


您是否尝试将该文件作为文本文件读取,而不是使用ADODB连接连接到该文件?由于它是CSV文件,您可能可以将其作为纯文本文件读取。您可以使用逗号和循环分割内容,并获得所需内容

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

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


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

dim strsource 
strsource="RS.Open " & strDirInfoX & " , Conn, 1, 3, &H0001" 
RS.Open strsource 
或者缩短时间,您可以这样做:

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

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

好吧,在不运行代码的情况下,我发现这部分有一个错误:

dim strsource 
strsource="RS.Open " & strDirInfoX & " , Conn, 1, 3, &H0001" 
RS.Open strsource 
或者缩短时间,您可以这样做:

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

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

vbscript不区分大小写vbscript不区分大小写是这样的……我简直不敢相信。我花了4个多小时的时间尝试了各种各样的东西使其工作,这是一个“。再次感谢您的帮助,嗯,它也适用于:”RS.Open“&StridinFox&”,康涅狄格州,1,3,&H0001…太好了…很高兴你为我工作了…万分感谢,你让我开心!这是肯定的。祝贺你自动化了混乱。@compcobalt另一个建议。。试试“设置RS=Conn.Execute(StridinFox)”如果不需要额外的参数,则会为您保存一些行,并且更方便readable@compcobalt不客气,我很高兴你现在运行它。就是这样……我不敢相信。我花了4个多小时的时间尝试了各种各样的东西