从经典ASP连接到MS Access数据库

时间:2011-12-28 13:42:50

标签: ms-access asp-classic

我正在尝试从经典ASP脚本连接MS Access数据库。

我正在使用运行IIS7的64位Windows 7操作系统

我有以下代码:

Dim Connection
Set Connection = Server.CreateObject("ADODB.Connection")
Response.Write("object created...")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("D://Somnath//ExtraLogistics//Source//ZipDB.mdb") & ";" 
Response.Write("connected...")

但是在IIS上运行应用程序时,我在浏览器中收到此错误The website cannot display the page

请帮我从IIS连接到Access数据库。

4 个答案:

答案 0 :(得分:1)

您的MapPath看起来不正确。

看看这个ASP reference

修改

Server.MapPath指向虚拟引用的物理位置:

例如:
'根目录的物理路径
Response.Write Server.MapPath(“/”)

'DataDirectory的物理路径
Response.Write Server.MapPath(“/ DataDirectory /”)

ZipDB.mdb 放在网站的根目录中,然后更改 Server.MapPath(“/”)

答案 1 :(得分:1)

使用“file dsn”:

conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\filepath\yourdb.mdb;"

答案 2 :(得分:0)

Server.MapPath将URL路径转换为服务器上的物理路径,因此Server.MapPath(“D://Somnath//ExtraLogistics//Source//ZipDB.mdb”)几乎肯定是错误的。

如果mdb文件位于http://yourhost/Somnath/ExtraLogistics/Source/ZibDB.mdb,那么您将使用Server.MapPath("/Somnath/ExtraLogistics/Source/ZibDB.mdb"),Server.MapPath将为您提供服务器文件系统中mdb文件的位置。

如果文件位于D:\ Somnath \ ExtraLogistics \ Source \ ZipDB.mdb,则只需使用该文件路径并完全删除Server.MapPath。

像这样: conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Somnath\ExtraLogistics\Source\ZipDB.mdb;"

答案 3 :(得分:0)

请注意,您希望将数据库存储在相对于执行asp文件的位置的父目录中。如果不这样做,则可以通过浏览器中的URL获得数据库。

另请注意,要使其工作,必须在IIS中启用“允许父路径”。