加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

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

发布时间:2023-05-31 13:45:20 所属栏目:Asp教程 来源:
导读:全站只需要用一个数据库连接文件的实现函数代码

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

复制代码代码如下:

'==========注意===============================================

' 1、网站所在文件夹的名
全站只需要用一个数据库连接文件的实现函数代码
 
啥都不说了,直接奉献原代码
 
复制代码代码如下:
 
'==========注意===============================================
 
' 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数据库解决的包含路径不对的问题,使站点能公用一个数据库连接文件,任意一个文件包含它,数据库都能正常打开,并且不必理会网站是怎么运行的(根目录下运行,虚拟路径下运行,根目录+网站所在目录下运行)。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章