当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP 包含文件中的路径问题和使用单一数据库连接文件的解决方案

ASP
Adodb.Command 平时很少注意到的一个参数
Asp.Net控件加载错误的解决方法
远程连接access数据库的方法
创建具有JScript的HTML的XMLHTTP
在Asp中如何快速优化分页的技巧
用VB生成DLL封装ASP代码,连接数据库
RS.OPEN SQL,CONN,A,B 全接触
利用adodb.stream直接下载任何后缀的文件(防盗链)
用ASP编程控制在IIS建立Web站点的程序代码
使用VBScript操作Html复选框(CheckBox)控件
把文章内容中涉及到的图片自动保存到本地服务器
两个不同数据库表的分页显示解决方案
使用组件封装数据库操作(一)
使用组件封装数据库操作(二)
如何在pb中创建COM组件,并在asp中调用并返回结果集?
用ASP和Microsoft.XMLDOM分析远程XML文件
浅谈无刷新取得远程数据技术
将ASP纪录集输出成n列的的表格形式显示的方法
在ASP中通过oo4o连接Oracle数据库的例子
Server Application Error详细解决办法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 210 ::
收藏到网摘: n/a

全站只需要用一个数据库连接文件的实现函数代码 啥都不说了,直接奉献原代码
复制代码 代码如下:

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