Min databaser ligger uden for public_html, i mappen db. Hidtil har jeg brugt den absolutte sti men min host har åbenbart ændret på stierne på serveren, og opfordrer nu til at man bruger Server.MapPath.
Men fejlen jeg får når jeg benytter server.mappath("/../db/artikler.mdb"), er:
Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x578 Thread 0x7b8 DBC 0x251807c Jet'.
Problemet med brugen af den relative sti er, at du skal specificere den relativt ifht. det script der bruger den, dvs. hvis et script i folderen
/mappe1/script1.asp
bruger server.mappath("../../db/artikler.mdb) for at få fat i databsen, så skal et script der ligger i folderen
/script0.asp
benytte server.mappath("../db/artikler.mdb) for at få fat i databasen. Som du nok kan se er dette ikke egnet til includefiler. Det er derfor jeg gerne vil igennem med den der mappath der tager udgangspunkt i roden af sitet, da den kan bruges alle steder uanset hvilket folderniveau man kalder den fra. Du kan alternativt prøve at hente stien til roden med
server.mappath("/")
og så rette den til så den peger på databasen (altså hardcode, selvom din udbyder fraråder det)... Så kan du bruge den i din include derfra.
Jeg har en metode til at finde den absolutte sti der kombinerer mappath og lidt strengbehandling, men det kræver som udgangspunkt at server.mappath("/") fungerer...
Hep! Jeg regner med at du giver lyd hvis du skal have lidt støtte i processen. Jeg har som sagt en metode, som jeg bygger en absolut streng op, hvis parent paths ikke tillades af serveren... sig til hvis det er interessant :)
Jeg har lige prøvet at flikke min egen version af MapPath sammen. Hvis du har lyst kan du jø prøve om det hjælpe noget at bruge den til at finde den absolutte sti til din database (der ligger undenfor roden af websitet):
<%@ language="vbscript" %> <% function MapPathX(path) if left(path,1) = "/" then root = Server.MapPath("/") path = right(path,len(path)-1) else root = Server.MapPath(".") end if
vfolders = split(path, "/")
for each folder in vfolders if folder = ".." then root = left(root, instrrev(root, "\") - 1) else root = root & "\" & folder end if next MapPathX = root end function %> <html> <head> <title>customServerMapPath</title> <style type="text/css"> .label { width:300px; } </style> </head> <body>
Denne version benytter sig ikke af parentpaths i Server.MapPath og har derfor (måske) en mulighed for at slippe udenom den begrænsning som den IIS ellers lægger på MapPath...
Softspot > Jeg tester det lige når jeg får tid, tak skal du have :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.