webForumDet fria alternativet

sökvägen till databasen... - jag blir inte klok!

ASP

13 svar · 341 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Frågan#1

Det är över mitt förstånd att jag inte har stött på detta problemet tidigare.

Problemet med server.mapPath från tidigare tråd kvarstår men är av en annan karraktär.

Givetvis kan man inte lägga sökvägen till databasen som en application eller session eftersom den är olika beroende på var på webbplatsen den anropas...

Eller...

Om jag har en viss sökväg till databasen i global.asa så borde väl endå sökvägen till själva databasen vara samma oavsett var på webbplatsen jag befinner mig!?

Jag förstår inte hur detta helt plölstsligt kan bli ett jätteproblem. Jag har ju använt liknande teknik i flera år!

***
Alltså: Teorin går ut på att jag sätter sökvägen till databasen i global.asa och sen använder samma sökväg på hela webbplatsen...

I teorin borde sökvägen vara samma oavsett var på webbplatsen, i vilken hiearaki man befinner sig, vara samma...

Medlem sedan juli 2003465 inlägg
#2

det blir la inte samma sökväg om du byter mapp eller hur tänkte du ??

Medlem sedan apr. 20003 174 inlägg
#3

Ange den direkta sökvägen till databasen istället, ex.

[red]c:\Inetpub\wwwroot\path\databas.mdb[/red]

..så slipper du det problemet.

Medlem sedan juli 20003 825 inlägg
#4

jag vet inte hur jag tänker men viss blir det väl det... Inte från roten men från e:\...

Alltså: Om sökvägen är "e:\www\admin2\user\html\Data\Databas\db1.mdb" på ett ställe så borde den väl vara det på ett annat ställe också??

Eller??

Medlem sedan juli 20003 825 inlägg
#5

Alltså, det blir ju hela tiden felmeddelande! Jag förstår inte det.

Medlem sedan juli 20003 825 inlägg
#6
SUB Session_OnStart
'## SELECT SERVER
IF Request.ServerVariables("SERVER_NAME") = "192.168.1.44" THEN
	' ## LOCALHOST
	session("databasePath") = Server.MapPath("\Databas\db1.mdb")
ELSE
	' ## WEBSERVER
	session("databasePath") = Server.MapPath("..\Data\Databas\db1.mdb")
END IF

END Sub

Om jag skriver detta i global.asa blir inte sökvägen till databasen samma oavsett var på webbplatsen jag anropar session("databasePath")?

Spelar det någon roll att mappen "Data" ligger utanför, bakom, roten på själva webbplatsen?

Medlem sedan apr. 20003 174 inlägg
#7

Eclipse skrev:

jag vet inte hur jag tänker men viss blir det väl det... Inte från roten men från e:\...

Alltså: Om sökvägen är "e:\www\admin2\user\html\Data\Databas\db1.mdb" på ett ställe så borde den väl vara det på ett annat ställe också??

Eller??

Jo, det borde fungera bättre..

Medlem sedan juli 20003 825 inlägg
#8

Så här skriver webbhotellet:

"
Vet inte om jag missuppfattat dig men...
Global.asa ligger i rooten men dina filer ligger i en undermapp, då blir
sökvägen ../../
Hade dina filer legat också i rooten så hade det varit ../
Är jag ute o cyklar?
"

Jag kan inte läsa vad han skriver. Antingen fungerar sökvägen eller också inte!

Som det är nu fungerar det ibland och ibland inte.

Om det nu är fel på min kod, vad är det då som är fel och hur ändrar jag det!?

Så här skriver jag:

'## OPEN THE DATABASE
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & session("databasePath")

Hur kan sökvägen vara korrekt ibland och felaktig på andra ställen!?

Medlem sedan apr. 20003 174 inlägg
#9

Fungerar inte detta:

[red]' ## WEBSERVER
session("databasePath") = "e:\www\admin2\user\html\Data\Databas\db1.mdb"

...

'## OPEN THE DATABASE
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& session("databasePath") [/red]
Medlem sedan mars 20002 836 inlägg
#10

Har du provat med att härleda från wwwroot istället som nu från dokumentet?

Server.MapPath("/dbFolder/anotherFolder/db.mdb")

Funkar cookies på webbläsaren? är det avstängt kan INTE en session sättas

cya,
/PatrikB

Medlem sedan juli 20003 825 inlägg
#11

Palle: ska testa den varianten. det kanske går bättre (även om jag egentligen itne förstår skillnaden... men okej.)

Parik: Om man lägger koden i global.asa så borde det väl bli från roten!?

Jag har kört som applications tidigare. Du har en poäng med sessions. Men finns det verkligen folk som surfar med den typen av sessions avstängda!? Givetvis gör det det... men då kan dom inte se mycket... !! Jag ska testa era förslag.

Medlem sedan juli 20003 825 inlägg
#12

Jag har uppdaterat sidan nu med session("databasePath") vilket jag kan hålla med om inte är den mest optimala lösningen.

Men vi får se vad som händer.

Jag kan fortfarande inte registera webbplatsen hos SuNet vilket inte känns helt betryggande!

Medlem sedan mars 20002 836 inlägg
#13

Eclipse skrev:

Parik: Om man lägger koden i global.asa så borde det väl bli från roten!?

Nej, det blir inte från rooten eftersom du kör:

Server.MapPath("../Data/Database....")

Den säger att du ska gå upp ETT steg och sedan ned i katalogen Data sedan katalogen Database osv.

Om du härleder från root ska det se ut så här:

Server.MapPath("**/**SomeFolder/AnotherFolder/MyDatabseFile.mdb")

Sedan har jag själv svårt för att du ska ha en struktur att köra mot lokalt och en annan på "live servern".
De båda miljöerna borde vara "kopior" av varandra och skiljda åt. Således skulle INTE if-satsen behövas.

cya,
/PatrikB

Medlem sedan juli 2003162 inlägg
#14

På vissa webbservrar får man inte använda ../ i server.mappath.

Jag var tvungen att koda om hela forumet, när webbhosten bytta server.

Så tänk på det; utgå alltid från roten!

360 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
220 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
218 ms — ändringar (db)