首页 > 编程 > ASP > 正文

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

2024-05-04 11:08:58
字体:
来源:转载
供稿:网友
全站只需要用一个数据库连接文件的实现函数代码
 
 
 
啥都不说了,直接奉献原代码 
复制代码代码如下:

'==========注意=============================================== 
' 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数据库解决的包含路径不对的问题,使站点能公用一个数据库连接文件,任意一个文件包含它,数据库都能正常打开,并且不必理会网站是怎么运行的(根目录下运行,虚拟路径下运行,根目录+网站所在目录下运行)。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表