查询 CSV 文件时出错



我有一台运行Windows Server 2003和IIS 6.0的服务器。我的经典ASP应用程序在那里完美运行。我一直在尝试让我的应用程序在这个新服务器(我的公司想要迁移)中的 IIS 7 和 Windows Server 2008 上运行,但是我在查询 CSV 文件时一直在苦苦挣扎。

代码在两种环境中是相同的,虽然它在我的 IIS 6 计算机上完美运行,但它拒绝让我访问查询生成的 RecordSet。

这是代码:

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 文件包含几列。其中之一称为 NAME。将其存储在变量中的代码如下:

strName = SQL("NAME")

仅在IIS 7上运行时收到的错误是经典的"在与请求的名称或序号对应的集合中找不到项目"。我在网络上找不到与 IIS 7 中的更改相关的任何会影响此功能的内容。对不起,长帖子。

如果将 sql 句子更改为

strSQL = "SELECT [name] AS strName FROM ...."

然后读句子

strName = SQL("strName")

经过一场伟大的战斗,我终于设法让它工作了。

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

我必须做的是找到另一种方法来访问查询的对象。您可以通过键入"SQL.字段(0)。名称'。它是一个数组,每次迭代都会移动到下一列。对于行,它是"SQL。字段(0)。价值'。

问题是我无法迭代".价值'。所有行值在 SQL 中都是一个巨大的字符串。字段(0)。价值。我只需要通过";"符号拆分它,瞧:

arrayCSV = split(SQL.Fields(0).Value,";")

我没有调用SQL("NAME"),而是将其更改为:

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

等等...

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

最新更新