asp父目录无效问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 20:52:13
打开根目录下 about/showequ.asp时,提示以下错误:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] '(未知的)'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
/website/include/conn.asp, 第 4 行

其中showequ.asp中包含文件代码为:<!--#include file="../include/conn.asp"-->

现在问题是:直接放在根目录下的asp文件可以顺利打开,其包含文件代码为:<!--#include file="include/conn.asp"-->
但是打开次级目录下的asp文件就会出错
IIS配置中已经启用父目录,希望大虾指教。
conn.asp的内容是:
<%
conn = "DBQ=" + server.mappath("xm/db.mdb") + ";DRIVER={Microsoft Access Driver (*.mdb)}"
Set conn=Server.createobject("ADODB.CONNECTION")
conn.Open conn
%>
看不出第四行有什么问题。并且包含的同一样文件,根目录下的asp文件调用就可以打开数据库,次级目录就会出错。我的数据库文件件db.mdb路径为:根目录/xm/db.mdb

<!--#include file="../include/conn.asp"--> 相当于把conn.asp内容copy到当前位置,所以,conn.asp中的相对路径起点不同,在不同目录下include conn.asp, 结果打不相同。
在根目录下include conn.asp,相当于到:根目录/xm/ 下找 db.mdb,
若在子目录abc下include conn.asp: 则相当于到 根目录/abc/xm/ 下找 db.mdb,当然找不到了。

简单的办法,就是在每个需要连接数据库的目录下各建一个conn.asp文件(不是复制,是新建)。
比如要从abc目录下调用,在abc目录建一个conn.asp文件
<%
DBPath1 = Server.MapPath("conn.asp") '找到当前目录下conn.asp的路径
DBPath = left(DBPath1,len(DBPath1)-12)&"xm/db.mdb" '找到上级目录、数据库路径
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
Set conn=Server.createobject("ADODB.CONNECTION")
conn.Open conn
%>

abc/conn.asp 共12个字符,所以减12

另外,ASP中一般用&连接字符串,不要用+号

直接include 当前目录下的conn.asp就没为题了。

楼上的办法,有些服务器可以,但现在很多服务器已经不再支持
server.mappath("../xm/db.mdb") 这种用法(不支持“../”路径)。

打开根目录下 about/showequ.asp时,提示以下错误:
Microsoft OLE DB P