Chinaunix首页 | 论坛 | 博客
  • 博客访问: 566444
  • 博文数量: 113
  • 博客积分: 7005
  • 博客等级: 少将
  • 技术积分: 1275
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-16 11:15
文章分类

全部博文(113)

文章存档

2008年(18)

2007年(17)

2006年(78)

我的朋友

分类:

2007-10-30 00:45:50

假如现在在D盘下有如下文件(夹)结构:
wwwroot
   include
      conn.asp
   database
      data.mdb
   article
      artilelist.asp
   index.asp

如果conn.asp中取数据库中路径的写法为:Server.MapPath("database\data.mdb")
1、当你在 index.asp 中,得到的数据库的绝对地址为:
   d:\wwwroot\database\data.mdb
   因为 index.asp 所在的绝对路径为:d:\wwwroot\,Server.MapPath("database\data.mdb")取得以此为相对路径下的\database\data.mdb文件,这样在 index.asp 中取得的数据库路径正确,程序可以正常运行

2、当在 artilelist.asp 中,得到的数据库的绝对地址为:
   d:\wwwroot\article\database\data.mdb
   因为 artilelist.asp 所在的绝对路径为:d:\wwwroot\article,Server.MapPath("database\data.mdb")就是返回以d:\wwwroot\article为相对路径的文件夹的 \database\data.mdb 文件,而 article 文件夹下并无此文件,程序自然不能正确执行


如果conn.asp中取数据库中路径的写法为:Server.MapPath("\")& "\database\data.mdb",就能避免这种情况:
   首先通过Server.MapPath("\")取得的是你网站根目录的绝对地址,再以此地址为相对地址下的 "\database\data.mdb"文件,这样无论文件夹的层次怎么变化,返回的数据库路径始终是:
   d:\wwwroot\database\data.mdb

另外:
   如果在调试程序中出现数据库路径错误,建议用
   response.write(取数据库路径的表达式)
   如:response.write(Server.MapPath("\")& "\database\data.mdb")
   看看输出的结果,自然就明白错在什么地方了!
阅读(1648) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-05-22 17:11:02

精辟!