Server.MapPath将包含CNN.ASP文件的页面文件的所在路径做为了当前路径

2023-12-05 20:48

本文主要是介绍Server.MapPath将包含CNN.ASP文件的页面文件的所在路径做为了当前路径,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

F1目录是后台管理程序所在,F2目录下的MYDATA.MDB是数据库文件,CNN.ASP中写明了数据库的连接方式,在其他文件中以包含文件的方式来使用。

 

因为MYDATA.MDBCNN.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

 

      就这些了,扔砖头吧

 

这篇关于Server.MapPath将包含CNN.ASP文件的页面文件的所在路径做为了当前路径的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/459086

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

SQL Server 查询数据库及数据文件大小的方法

《SQLServer查询数据库及数据文件大小的方法》文章介绍了查询数据库大小的SQL方法及存储过程实现,涵盖当前数据库、所有数据库的总大小及文件明细,本文结合实例代码给大家介绍的非常详细,感兴趣的... 目录1. 直接使用SQL1.1 查询当前数据库大小1.2 查询所有数据库的大小1.3 查询每个数据库的详

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也