Avatar billede webbe Nybegynder
23. januar 2003 - 14:11 Der er 4 kommentarer og
3 løsninger

Én include fil til alle asp-filer giver fejl i undermapper

Hej eksperter

Jeg er igang med et større projekt hvor jeg i mange filer (inddelt i undermapper) skal trække på den samme database.

Jeg har lavet min connection i en include-fil, så jeg kun skal rette ét sted.
Men jeg har problemer med at den ikke kan finde databasen når jeg kalder filerne i undermapperne.

Min connection (db.inc) ser således ud:

Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " &_
"DBQ=" & Server.Mappath("../../log/qdm_demo.mdb") & "; password="
Conn.Open strDSN

og jeg kalder den med denne linie:

<!--#include file="include/db.inc" -->

Det går også fint nok med den så længe jeg kalder filer der ligger der ligger i niveauet over mappen "include", men når jeg så kalder en fil i mappen "options", hvor jeg kalder db.inc med følgende linie:

<!--#include file="../include/db.inc" -->

så går det galt.

Det giver mig følgende fejl:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver] "(ukendt)" er ikke en gyldig sti. Kontroller, at stinavnet er stavet korrekt, og at du er tilsluttet den server, hvor filen findes.
/qdm/qdm_ny/demo/include/db.inc, line 5

Jeg vil jo helst undgå at jeg for hver undermappe skal have en mappe der hedder include med en tilrettet fil der hedder db.inc, idet det giver for meget vedligeholdelsesarbejde hvis noget skal ændres.
Jeg er tvunget til at lave min connection på ovenstående måde da jeg ikke kan lave en system-dsn på den server det ligger på.

Håber der er nogen der kan hjælpe.
Avatar billede misbruger Nybegynder
23. januar 2003 - 14:13 #1
i steden for at bruge Server.Mappath, skal du bare opgive den absolutte sti
F.eks.
c:\inetpub\sites\domain\db\log\qdm_demo.mdb
Avatar billede misbruger Nybegynder
23. januar 2003 - 14:15 #2
Altså....

Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " &_
"DBQ=c:\inetpub\sites\domain\db\log\qdm_demo.mdb; password="
Conn.Open strDSN
Avatar billede kentoix Nybegynder
23. januar 2003 - 14:16 #3
Det er fordi din database ligger forskelligt fra filerne ...

<!--#include file="include/db.inc" -->

Server.Mappath("../../log/qdm_demo.mdb")

<!--#include file="../include/db.inc" -->

Server.Mappath("../../../log/qdm_demo.mdb")

for her ligger den jo en mappe længere ned og så tror den at databasen kun ligger to mapper længere oppe hvor imod den faktisk ligger 3 ...
Avatar billede webbe Nybegynder
23. januar 2003 - 14:29 #4
En absolut sti kan jeg vel ikke bruge når den er på serveren!?
Avatar billede sbm Nybegynder
23. januar 2003 - 15:09 #5
En absolut sti på en webserver starter fra web-roden. Dvs. det sted der svarer til dit domænenavn uden noget efter.
http://www.eksperten.dk
Skal du lave en absolut sti, kan du lave en reference der hedder /spm/308793 hvilket så vil svare til denne side.
Med andre ord: Prik dig hele vejen ind fra roden, ved at skrive / foran, og så hele den fornødne sti.
Avatar billede soes Nybegynder
23. januar 2003 - 15:19 #6
var det ikke bedre at ligge det hele over i en application variabel? Har jeg gjort flere gang og herved er man fri for at skal includere filer hele tiden.

i global.asa skriver du foelgende:
Sub Application_OnStart()
  Application("Provider") = "DRIVER={Microsoft Access Driver (*.mdb)}; " &_
"DBQ=" & Din sti & "; password=""
End Sub

Naar du saa skal aabne en forbindelse paa en side kan det goeres saadan her:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Application("Provider")
Avatar billede webbe Nybegynder
23. januar 2003 - 15:30 #7
soes:

Tak for det - det var kanon...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester