asp数据连接问题,总是找不到包含的文件
有一个conn.asp文件是做数据库连接的,其他文件包含这个文件<!--#includefile="../conn_db123.asp"-->用的是access数据库,数...
有一个conn.asp文件是做数据库连接的,其他文件包含这个文件<!--#include file="../conn_db123.asp"-->
用的是access数据库,数据库在与conn并行下的一个文件夹data里
conn里的连接语句:
dbpath="data/bbb.mdb"
conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Data source="&Server.MapPath(dbpath)
当其他asp文件与conn.asp在同一个文件夹下的时候就可以正常连接
但是如果新建一个文件夹,取名a,在a里面新建一个文件b.asp,在b.asp里写包含conn.asp的语句:<!--#include file="../conn.asp"-->,这个时候就会提示找不到指定的文件:
错误类型:
Microsoft JET Database Engine
(0x80004005)
'****\a\data\bbb.mdb'不是一个有效的路径。
确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
***/conn.asp, 第 8 行
这个错误提示是在conn.asp里找不到数据库bbb.mdb的文件
问题是数据库的路径是"data/bbb.mdb",而不是\a\data\bbb.mdb,我想问为什么会指向错误的路径。
如果我把conn.asp文件放到a文件夹里,把b.asp里的包含路径改为<!--#include file="conn.asp"-->,也会是这个错误,实在是不明白。
看到有人这么说,不知道是不是这个原因,asp本身的问题。
如果你的CONN.ASP文件用Server.Mappath()来去数据库路径的话,这是必然的!也是ASP在相对路径方面的一个大缺陷。其实楼上的说的是正确的,楼主不要误会了他的意思。这种情况只发生在连接ACCESS数据库上。
改用别的方法吧,方法很多的,比如(用类来封装,设置一个路径属性,或者在conn.asp里做一个函数,用一个参数来表示相对根的层次,等等)实在不知道就补充说吧。因为要说的话一两句也说不清。
http://zhidao.baidu.com/question/2534459.html?fr=push
问:这个别的方法怎么来实现呢? 展开
用的是access数据库,数据库在与conn并行下的一个文件夹data里
conn里的连接语句:
dbpath="data/bbb.mdb"
conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Data source="&Server.MapPath(dbpath)
当其他asp文件与conn.asp在同一个文件夹下的时候就可以正常连接
但是如果新建一个文件夹,取名a,在a里面新建一个文件b.asp,在b.asp里写包含conn.asp的语句:<!--#include file="../conn.asp"-->,这个时候就会提示找不到指定的文件:
错误类型:
Microsoft JET Database Engine
(0x80004005)
'****\a\data\bbb.mdb'不是一个有效的路径。
确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
***/conn.asp, 第 8 行
这个错误提示是在conn.asp里找不到数据库bbb.mdb的文件
问题是数据库的路径是"data/bbb.mdb",而不是\a\data\bbb.mdb,我想问为什么会指向错误的路径。
如果我把conn.asp文件放到a文件夹里,把b.asp里的包含路径改为<!--#include file="conn.asp"-->,也会是这个错误,实在是不明白。
看到有人这么说,不知道是不是这个原因,asp本身的问题。
如果你的CONN.ASP文件用Server.Mappath()来去数据库路径的话,这是必然的!也是ASP在相对路径方面的一个大缺陷。其实楼上的说的是正确的,楼主不要误会了他的意思。这种情况只发生在连接ACCESS数据库上。
改用别的方法吧,方法很多的,比如(用类来封装,设置一个路径属性,或者在conn.asp里做一个函数,用一个参数来表示相对根的层次,等等)实在不知道就补充说吧。因为要说的话一两句也说不清。
http://zhidao.baidu.com/question/2534459.html?fr=push
问:这个别的方法怎么来实现呢? 展开
展开全部
conn里的连接语句:
dbpath="data/bbb.mdb"
请注意,这是个相对路径,这个“相对”,并不是相对于conn.asp所在的路径,而是相对于用include调用conn.asp的那个asp文件所在的路径!比如说你题目中的b.asp是在文件夹a内的,那么当它用include调用conn.asp时,相对路径data/bbb.mdb转为绝对路径就是\a\data\bbb.mdb了,所以就会提示找不到文件了。
这也就是说,任何与conn.asp同文件夹的asp文件调用conn.asp后就能正确打开数据库,而放在其他文件夹的asp文件就会失败!
要解决这个问题,就要把conn.asp中的相对路径改为绝对路径,这样的话放在任何文件夹的asp文件调用conn.asp后都能打开数据库了:
dbpath="/data/bbb.mdb"
补充说明:
<!--#include file="../conn.asp"-->
当服务器运行到上述命令时,会先找到conn.asp这个文件,然后把文件的所有内容提取出来,插入并替换上述语句所在位置,所以你可以把dbpath="data/bbb.mdb"看作是b.asp中的语句,这么一来,你就理解我前面所说的那一大堆东西了。
dbpath="data/bbb.mdb"
请注意,这是个相对路径,这个“相对”,并不是相对于conn.asp所在的路径,而是相对于用include调用conn.asp的那个asp文件所在的路径!比如说你题目中的b.asp是在文件夹a内的,那么当它用include调用conn.asp时,相对路径data/bbb.mdb转为绝对路径就是\a\data\bbb.mdb了,所以就会提示找不到文件了。
这也就是说,任何与conn.asp同文件夹的asp文件调用conn.asp后就能正确打开数据库,而放在其他文件夹的asp文件就会失败!
要解决这个问题,就要把conn.asp中的相对路径改为绝对路径,这样的话放在任何文件夹的asp文件调用conn.asp后都能打开数据库了:
dbpath="/data/bbb.mdb"
补充说明:
<!--#include file="../conn.asp"-->
当服务器运行到上述命令时,会先找到conn.asp这个文件,然后把文件的所有内容提取出来,插入并替换上述语句所在位置,所以你可以把dbpath="data/bbb.mdb"看作是b.asp中的语句,这么一来,你就理解我前面所说的那一大堆东西了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询