我最近将计算机从XP升级到Windows 7。我使用的是IIS 6.0,但我现在使用的是IIS 7.5。当我在我的XP机器上时,我能够运行和查看我的经典ASP 页面。我正在工作,能够从我的本地驱动器运行经典ASP页面。我正在使用SQL Server 2005.我使用.NET Framework 2.0版的应用程序池设置IIS 7.5。当我尝试运行该页面时,我收到错误:“用于ODBC驱动程序的Microsoft OLE DB提供程序错误'80004005'[Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序” 。我的代码如下所示:
randomConnection = "Provider=SQLOLEDB;Data Source=server\instance;Initial Catalog=myDataBase;User Id=MyFakeUserID;Password=MyFakePassword;"
Set someRS = Server.CreateObject("ADODB.RecordSet")
mySQLStatement = "SELECT DISTINCT CarInfo.CarMake, CarInfo.CarColor FROM CarInfo"
someRS.Open mySQLStatement, randomConnection
最后一行的代码错误。在完成所有这些之后,我的代码还有更多功能。所有代码都适用于IIS 6.0。唯一的变化是我切换到Windows 7 32位和IIS 7.5。因为我有IIS 7.5,是否有一些需要特殊的东西?我已经在根目录中创建了测试ASP页面而没有任何数据库逻辑,并且页面呈现得很好。
答案 0 :(得分:0)
您的连接字符串使用了错误的提供程序 - SQLOLEDB 是SQL Server 2000 or SQL Server 7的数据提供程序。您应该根据SQL Server 2005 connection strings使用 SQLNCLI (或 SQLNCLI10 )。
试试这个......
Provider=SQLNCLI;Data Source=server\instance;Initial Catalog=myDataBase;User Id=MyFakeUserID;Password=MyFakePassword;
您还尝试使用mySQLStatement
作为连接字符串打开连接。您需要重新访问ADODB中how to connect和request data上的文档。
答案 1 :(得分:0)
如果您更改连接到服务器的方式,它是否有效或给您一个不同的错误?我在使用上面的版本和我们使用的版本之间出现了不同的错误(我在下面得到的错误是因为我没有名为server \ instance的实例):
Set someRS = Server.CreateObject ("ADODB.Command")
someRS.ActiveConnection = "Provider=SQLOLEDB;Data Source=server\instance;Initial Catalog=myDataBase;User Id=MyFakeUserID;Password=MyFakePassword;"
someRS.CommandText = "SELECT DISTINCT CarInfo.CarMake, CarInfo.CarColor FROM CarInfo"
someRS.Prepared = true
Set someRSResults = someRS.Execute
此外,我们使用SQLOLEDB,它与SQL Server 2000,2005和2008一起使用。也许我们需要将它更新到后者,但它应该可以工作。