服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - ASP教程 - ASP 包含文件中的路径问题和使用单一数据库连接文件的解决方案

ASP 包含文件中的路径问题和使用单一数据库连接文件的解决方案

2019-09-12 11:12asp空间网 ASP教程

啥都不说了,直接奉献原代码 复制代码 代码如下: ==========注意=============================================== 1、网站所在文件夹的名字不能为root 2、网站所在文件夹的名字,物理路径中不允许出现重复此文件夹名,如F:\t\t,t为网站所在文件

啥都不说了,直接奉献原代码 

复制代码代码如下:


'==========注意=============================================== 
' 1、网站所在文件夹的名字不能为“root” 
' 2、网站所在文件夹的名字,物理路径中不允许出现重复此文件夹名,如F:\t\t,t为网站所在文件夹名,这种情况会出错 
'============================================================= 
Dim dbPath,dbName,Db,ConnStr,WebSiteFolderName 
on error resume next 

WebSiteFolderName="WeldSiteBuilder" 
dbPath = "_sitedata\" '注意是反斜杠,且只有末尾有 
dbName = "acteedata.mdb" '数据库名称 
Db=GetSitePhysicalPath(WebSiteFolderName) & dbPath & dbName 
'response.Write("当前数据库物理路径:"&server.mappath(db)) 
'response.Write("<hr>") 
'response.Write("当前请求访问的页面路径:"&request.ServerVariables("URL")) 
'response.Write("<hr>") 
'response.Write("当前站点的根路径:"&request.ServerVariables("APPL_PHYSICAL_PATH")) 
'response.Write("<hr>") 
'response.Write("当前站点的路径状况:"&request.ServerVariables("APPL_MD_PATH")) 
'response.Write(db) 
'response.End() 
'====================== 
Set conn=Server.CreateObject("ADODB.Connection") 
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Db 
Conn.Open ConnStr 
If Err Then 
Err.Clear 
Set Conn = Nothing 
Response.Write "数据库连接错误!" 
Response.End 
End If 

Sub CloseConn() 
conn.close 
set conn=nothing 
end Sub 

'获取网站所在目录的绝对路径(带“\”号) 
Function GetSitePhysicalPath(WSFN) 
dim APPL_MD_PATH,APPL_MD_PATHArray,Path,WSPP 
WSPP=request.ServerVariables("APPL_PHYSICAL_PATH")'默认网站是在根目录下运行 

APPL_MD_PATH=request.ServerVariables("APPL_MD_PATH") 
APPL_MD_PATHArray=split(APPL_MD_PATH,"/") 
Path=APPL_MD_PATHArray(UBound(APPL_MD_PATHArray)) 
if UCase(Path)="ROOT" then '判断网站是不是在独立的应用程序下运行 
'再判断网站是不是在某个文件夹下运行 
if InStr(WSPP,WSFN)=0 then '网站在根目录下的一个文件夹下运行 
'根据受访页面的地址拼出网站所在文件夹的地址 
dim CurrentUrl,NameArray 
CurrentUrl=request.ServerVariables("URL") 
NameArray=split(CurrentUrl,"/") 
for i=LBound(NameArray) to UBound(NameArray) 
if UCase(NameArray(i))=UCase(WSFN) then 
for j=0 to i 
WSPP=WSPP+NameArray(j)+"\" 
next 
exit for 
end if 
next 
else '表明网站是在根目录下运行 
'什么都不必做,返回值已经初始化了 
end if 
else '表明网站是在虚拟目录下运行 
'什么也不做,返回值已经初始化了 
end if 
WSPP=replace(WSPP,"\\","\") 
GetSitePhysicalPath=WSPP 
End Function 


PS:以上只是针对Access数据库解决的包含路径不对的问题,使站点能公用一个数据库连接文件,任意一个文件包含它,数据库都能正常打开,并且不必理会网站是怎么运行的(根目录下运行,虚拟路径下运行,根目录+网站所在目录下运行)。

延伸 · 阅读

精彩推荐