泰州电脑学习网  
收藏本站
  当前位置 : 首页 >> 网站建设 >> asp专栏 >>
ASP中access数据库的路径问题
来源:泰州电脑学习网 日期:2007-11-15 点击:

自己平时做的网站大多使用的是SQL数据库,所以对使用ACCESS数据库的网站没有太多的接触。昨日在帮朋友做一个使用ACCESS数据库的网站后台管理程序时,遇到了一些麻烦。

 

    该网站的目录设置如下(只列出了相关部分)
   
   
F1目录是后台管理程序所在,F2目录下的MYDATA.MDB是数据库文件,CNN.ASP中写明了数据库的连接方式,在其他文件中以包含文件的方式来使用。

 

因为MYDATA.MDB和CNN.ASP在同一目录下,因此CNN.ASP中的连接语句是这么写的:

      strCnn = "driver={microsoft  access  driver (*.mdb)};dbq=" & _

     Server.Mappath("mydata.mdb")

 

由于是原来写好的,我没有仔细考虑什么,就直接在F1目录下的INDEX.ASP文件中加入F2语句

<!--#include file="../F2/Cnn.asp" -->

然后运行……嗯???出错了!!

         Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
         [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 ´Temporary (volatile) Jet DSN for process 0x94 Thread 0x9a0  DBC    0x13b0074 Jet´。

    错误提示是在OPEN数据库时出错了,没有找到该数据库。难道是数据库路径不对?

 

    将CNN.ASP中的strCnn输出看看先

driver={microsoft access driver (*.mdb)};dbq=C:\F1\mydata.mdb

果然,路径错误!

 

看来,是这个Server.MapPath将包含CNN.ASP文件的页面文件的所在路径做为了当前路径。即如果是F1目录下的INDEX.ASP包含了CNN.ASP,则此时的Server.MapPath("mydata.mdb")就是C:\F1\mydata.mdb;如果F1目录下的NEWS目录下某个文件包含了CNN.ASP,则此时的Server.MapPath("mydata.mdb")就是C:\F1\News\mydata.mdb;

经过验证,证明情况确实如上。

 

问题发现了,就该解决了它。由于无法限定在几级目录中要包含CNN.ASP文件,因此使用Server.MapPath就无法获取数据库正确的路径;难道要在所有使用数据库的文件中全部写入该数据库的连接?这是下下策,尽量避免。

 

经过N分钟的思考,终于想出了一个较为划算的方法,就是不使用虚拟路径,先确定根目录的实际路径,然后加入数据库的所在路径。实现代码如下:

 

       Cnn.asp文件:

 

Dim strCurPath,strCurLocation

 

´获取包含该文件的页面文件的虚拟路径

strCurPath=Request.ServerVariables("PATH_INFO")

´获取包含该文件的页面文件的实际路径

strCurLocation=Request.ServerVariables("PATH_TRANSLATED")

 

´转换路径间隔符号(虚拟路径用"/"分隔,实际路径用"\"分隔)

strCurPath=Replace(strCurPath,"/","\")

 

´得到网站根目录的实际路径

strCurLocation=Replace(strCurLocation,strCurPath,"")

 

´指定数据库实际路径

strCurLocation=strCurLocation & "\F2\MyData.mdb"

 

Set Cnn = Server.CreateObject("ADODB.CONNECTION")

´连接到数据库服务器,数据库名称 mydata.mdb

strCnn = "driver={microsoft access driver (*.mdb)};dbq=" & strCurLocation

Cnn.Open strCnn

 

      就这些了,扔砖头吧



责任编辑:泰州电脑学习网

打印本文 关闭本页 返回页首
相关文章
·md5加密和解密 ·在电子商务中ASP实现购物车的方法
·一个登陆窗口的记数判断登录(有用哦),了... ·防止Access数据库被下载
·用Asp隐藏文件路径,实现防盗链 ·通过实例讲解来学习ASP中的函数
·用ASP代码得到客户端IP和当前地址 ·ASP教程:ASP分页列表生成静态页面的小程序
·ASP读sql数据时出现乱码问题的解决方法 ·网站安全知识 ASP网站黑客防范编程技巧
·ASP和Access结合编写目录树的程序实例 ·整理:防止Access数据库被下载的9种方法
·ASP脚本语言的19个基本技巧使用 ·推荐文章:ASP脚本程序的15种使用技巧
·Cookie是什么?用法是怎样?与SESSION有什么... ·问题解答:ASP编程中关于session的用法
  热点文章
·键盘操作大全
·如何重装xp系统图解
·神奇地加快XP宽带上...
·如何组装一台电脑
·电脑组装全教程
·五笔字型输入法
·让QQ永久在线——挂...
·bios设置图解教程
  推荐文章
·最新驱动下载
·什么是Google优化
·网站备案绕过手机验证...
·电脑无法启动的特殊故...
·启动“黑屏”故障检修...
·几种主板BIOS报警声音...
·网管维护局域网技巧大...
·网络经典命令行
  相关文章
网站首页 | 关于我们 | 在线学习 | 业务联系 | 版权声明 | 联系方式 | 留言/建议/投诉 | 技术交流
客服邮箱:web@0523pc.com  QQ:43957884
 版权所有、肆意抄袭、模仿必究 泰州电脑© 2004 苏ICP备07003435号