Die gesamte Site muss nur eine Datenbankverbindungsdatei verwenden, um den Funktionscode zu implementieren. Ich werde nichts anderes sagen, sondern nur den Originalcode direkt dedizieren.
Kopieren Sie den Codecode wie folgt:
'==========Achtung===================================== =========
' 1. Der Name des Ordners, in dem sich die Website befindet, darf nicht root sein.
' 2. Der Name des Ordners, in dem sich die Website befindet, ist im physischen Pfad nicht zulässig. Beispielsweise ist „F:/t/t“ der Name des Ordners, in dem sich die Website befindet In diesem Fall tritt ein Fehler auf.
'============================================== = ============
Dimmen Sie dbPath,dbName,Db,ConnStr,WebSiteFolderName
Bei Fehler als nächstes fortfahren
WebSiteFolderName=WeldSiteBuilder
dbPath = _sitedata/ 'Beachten Sie, dass es sich um einen Backslash handelt, und zwar nur am Ende
dbName = acteedata.mdb 'Datenbankname
Db=GetSitePhysicalPath(WebSiteFolderName) & dbPath & dbName
'response.Write(aktueller physischer Datenbankpfad: &server.mappath(db))
'response.Write(<hr>)
'response.Write(Aktuell angeforderter Seitenpfad: &request.ServerVariables(URL))
'response.Write(<hr>)
'response.Write(Stammpfad der aktuellen Site: &request.ServerVariables(APPL_PHYSICAL_PATH))
'response.Write(<hr>)
'response.Write(Pfadstatus der aktuellen Site: &request.ServerVariables(APPL_MD_PATH))
'response.Write(db)
'response.End()
'======================
Setze conn=Server.CreateObject(ADODB.Connection)
ConnStr=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&Db
Conn.Open ConnStr
Wenn Sie sich irren, dann
Fehler.Klar
SetConn=Nichts
Response.Write-Datenbankverbindungsfehler!
Antwort.Ende
Ende wenn
SubCloseConn()
Verbindung schließen
setze conn=nichts
Ende Sub
'Den absoluten Pfad zum Verzeichnis abrufen, in dem sich die Website befindet (mit /-Zeichen)
Funktion GetSitePhysicalPath(WSFN)
dimmen Sie APPL_MD_PATH,APPL_MD_PATHArray,Path,WSPP
WSPP=request.ServerVariables(APPL_PHYSICAL_PATH)'Die Standardwebsite wird im Stammverzeichnis ausgeführt
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 'Bestimmen Sie, ob die Website unter einer unabhängigen Anwendung ausgeführt wird
„Stellen Sie dann fest, ob die Website in einem bestimmten Ordner ausgeführt wird.“
if InStr(WSPP,WSFN)=0 then 'Die Website wird in einem Ordner im Stammverzeichnis ausgeführt
„Buchstabieren Sie die Adresse des Ordners, in dem sich die Website befindet, basierend auf der Adresse der besuchten Seite.“
Dimmen Sie CurrentUrl,NameArray
CurrentUrl=request.ServerVariables(URL)
NameArray=split(CurrentUrl,/)
für i=LBound(NameArray) bis UBound(NameArray)
wenn UCase(NameArray(i))=UCase(WSFN) dann
für j=0 bis i
WSPP=WSPP+NameArray(j)+/
nächste
Ausgang für
Ende wenn
nächste
else 'zeigt an, dass die Website im Stammverzeichnis ausgeführt wird
„Keine Notwendigkeit, etwas zu tun, der Rückgabewert wurde initialisiert.“
Ende wenn
else 'zeigt an, dass die Website in einem virtuellen Verzeichnis ausgeführt wird
'Nichts tun, der Rückgabewert wurde initialisiert
Ende wenn
WSPP=replace(WSPP,//,/)
GetSitePhysicalPath=WSPP
Funktion beenden
PS: Das Obige ist nur eine Lösung für das Problem falscher Einbindungspfade für die Access-Datenbank, sodass die Site eine Datenbankverbindungsdatei gemeinsam nutzen kann. Wenn eine Datei diese enthält, kann die Datenbank normal geöffnet werden, und es besteht keine Notwendigkeit Sorgen Sie sich darum, wie die Website ausgeführt wird (im Stammverzeichnis ausführen, unter dem virtuellen Pfad ausführen, unter dem Stammverzeichnis + dem Verzeichnis ausführen, in dem sich die Website befindet).