查询CSV文件时出错

查询CSV文件时出错,csv,asp-classic,ado,Csv,Asp Classic,Ado,我有一台运行Windows server 2003和IIS 6.0的服务器。我的经典ASP应用程序在那里工作得非常好。我一直在尝试让我的应用程序在IIS 7和Windows Server 2008这台新服务器上运行,如果我的公司希望迁移它,那么我在查询CSV文件时遇到了困难 这两种环境中的代码都是相同的,虽然它在我的IIS 6机器上工作得很好,但它拒绝让我访问查询生成的记录集 代码如下: Set conExcel = Server.CreateObject("ADODB.Connection")

我有一台运行Windows server 2003和IIS 6.0的服务器。我的经典ASP应用程序在那里工作得非常好。我一直在尝试让我的应用程序在IIS 7和Windows Server 2008这台新服务器上运行,如果我的公司希望迁移它,那么我在查询CSV文件时遇到了困难

这两种环境中的代码都是相同的,虽然它在我的IIS 6机器上工作得很好,但它拒绝让我访问查询生成的记录集

代码如下:

Set conExcel = Server.CreateObject("ADODB.Connection")

conExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("xls\") &";Extended Properties=""Text;HDR=Yes;IMEX=1; ImportMixedTypes=Text;FMT=Delimited(;)"""

strSQL="SELECT * FROM ["& strFile &"]"

set SQL = Server.createobject("ADODB.Recordset")

SQL.Open strSQL,conExcel
CSV文件有多个列。其中一个叫做名字。 将其存储在变量中的代码如下所示:

strName = SQL("NAME")
只有在IIS 7上运行时,我才会遇到典型的错误“在与请求的名称或序号对应的集合中找不到项”。
我在网上找不到任何与IIS 7中会影响此功能的更改相关的内容。抱歉发了这么长的帖子。

如果将sql语句更改为

strSQL = "SELECT [name] AS strName FROM ...."
然后把句子读给我听

strName = SQL("strName")

经过一场大战,我终于成功了

我在上面问题中发布的查询是有效的。问题在于如何访问CSV文件的记录集。显然,我不能通过编写SQL(“名称”)来调用列

我要做的是找到另一种方法来访问查询对象。 您可以通过键入“SQL.Fields(0.Name)”来调用标题。它是一个数组,每次迭代都会向上移动到下一列。对于行,它是“SQL.Fields(0.Value)”

问题是我无法迭代“.Value”。所有的行值在SQL.Fields(0.Value)中都是一个巨大的字符串。我只需要通过“;”就可以了symbol和voilá:

arrayCSV = split(SQL.Fields(0).Value,";")
我没有调用SQL(“名称”),而是将其更改为:

strName = arrayCSV(1)
strJob = arrayCSV(2)
等等


希望这对将来的人有所帮助。我仍然不知道这是IIS 7还是服务器本身的某个配置。

当您将csv文件复制到新服务器时,是否有schema.ini文件需要与它一起移动。有关更多详细信息,请参见此处。不,没有。医生说没必要。除非你有更复杂的数据。我的只是纯文本。对吗?