webForumDet fria alternativet

server mappath

22 svar · 556 visningar · startad av Jymdis

JymdisMedlem sedan mars 20016 260 inlägg
#1

Hejsan!

Jag försöker connecta till en databas via server.mappath men råkar in i lite problem (har alltid haft DSN innan nämligen):

Strukturen ser ut såhär:

/
/data/
/html/
/html/connections/

I html/connections ligger industri.asp som innehåller:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../data/industri.mdb")

Detta fungerar på de sidor där industri.asp inkluderas (SSI) som ligger exakt så som MapPath säger, (http://server.jymdis.com/industri/) men inte när man försöker titta på ett dokument som exempelvis ligger i mapp i /html/.

Mitt andra fel går att skåda på www.jymdis.com, jag har ingen aning om varför det inte funkar, det ska göra det.

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Varför inte använda den fysiska sökvägen då?

JymdisMedlem sedan mars 20016 260 inlägg
#3

För jag vill det ska fungera både på min lokala dator (testservern) och på den riktiga. Vill bara kunna dumpa över alla filerna och då ersätt connection-strängen. Jag vet att jag kanske är lite lat men det ska ju gå tycker man.

@ndersMedlem sedan juni 200032 969 inlägg
#4

Kan du inte utgå ifrån roten då, om du har samma struktur på mapparna lokalt och på servern?

Ang. ditt andra fel; kod, bitte?

JymdisMedlem sedan mars 20016 260 inlägg
#5

Hur utgår jag ifrån rooten? (om du menar c:\www\mapp\mapp\databas.mdb så är det inte samma).

Koden lyder som följer:

Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_databas_STRING
Recordset1.Source = "SELECT *  FROM page  WHERE page = '" + Replace(Recordset1__MMColParam, "'", "''") + "' and language = '" + Replace(Recordset1__MMlanguage, "'", "''") + "'  ORDER BY ID desc"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

där MM_databas_STRING är

MM_databas_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\www\admin165\user172\data\databas.mdb"
doggelitoMedlem sedan juni 20003 076 inlägg
#6

så här, typ. börja aldrig med två punkter osv. :)

MM_databas_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/admin165/user172/data/databas.mdb")
JymdisMedlem sedan mars 20016 260 inlägg
#7

Det funkar ju inte iheller då rooten för sajten är satt till /admin165/user172/html/ och om jag använder så som du säger doggelito så letar den efter databasen på /admin165/user172/html/admin165/user172/data/databas.asp eller liknande.

@ndersMedlem sedan juni 200032 969 inlägg
#8

Funkar inte detta?

Server.mappath("/../data/databas.mdb")
cyprysMedlem sedan dec. 20003 563 inlägg
#9

Många servrar/admin har stängt av funktionen att kunna klättra upp i trädstrukturen. Alltså ../ fungerar inte.
Men i detta fall borde de ge ett felmeddelande om att just ../ är avaktiverat. Finns inget sådant?

JymdisMedlem sedan mars 20016 260 inlägg
#10

Nopes, det blir det inte. Själva problemet är ju inte att det inte fungerar, utan att sökvägen blir olika beroende på var min "connection" fil inkluderas med hjälp av include.

JymdisMedlem sedan mars 20016 260 inlägg
#11

Ett till skum sak, när jag kör DSN anslutning så fungerar databasen perfekt, kör jag

 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../data/databas.mdb")

så får jag följande felmeddelande både lokalt och på den riktiga servern:

error '80004005'
/main.asp, line 26

line26 är:

Recordset1.Open()
JymdisMedlem sedan mars 20016 260 inlägg
#12

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q225/0/42.asp&NoWebContent=1

Jag har en känsla av att det är det som är problemet, var uppdaterar man till MDAC 2.5?

@ndersMedlem sedan juni 200032 969 inlägg
JymdisMedlem sedan mars 20016 260 inlägg
#14

Nä det fixa inte det. Jag är öppen för alla förslag.

@ndersMedlem sedan juni 200032 969 inlägg
#15

Nopes, det blir det inte. Själva problemet är ju inte att det inte fungerar, utan att sökvägen blir olika beroende på var min "connection" fil inkluderas med hjälp av include.

Vilket ju är ganska självklart om man inleder en sökväg med ../ , eftersom det är relativt till den sökväg aktuell fil ligger i.

Provade du mitt förslag ovan?

Hur ser mappstrukturen ut?

edit: glöm min sista fråga, du har svarat på den i ditt första inlägg.

JymdisMedlem sedan mars 20016 260 inlägg
#16

@nders:
vilket förslag syftar du på? :)
jag har uppdaterat mdac å även provat med "Server.mappath("/../data/databas.mdb". Den hittar databasen och så, men sen uppkommer felet med "error '80004005' ".

Jag har typ denna structuren i HTML:

/connections/
/pages/
default.asp

i pages ligger olika sidor (som i sin tur kan ligga i egna mappar) och i connections ligger connection scriptet som inkluderas på alla sidor som connectar till databasen.

Usch, det värsta är att om det bara funnits DSN på servern hade jag inte haft dom här problemen öht.

JymdisMedlem sedan mars 20016 260 inlägg
#17

Angående att det är ganska självklart vet jag ju inte riktigt om jag håller med, själva connectionen till databasen gör ju i connect.asp i connections och man hade ju kunnat tänka sig att var än filen inkluderas så är det sökvägen ifrån connections/connect.asp som skulle gälla, men så är det visst inte.

@ndersMedlem sedan juni 200032 969 inlägg
#18

Den hittar databasen och så, men sen uppkommer felet med "error '80004005' ".

Oki, om den hittar databasen, så bör sökvägsproblemet vara löst. Jag skulle gissa på att det nya felmeddelandet beror på något annat. ;)

Kan man få se lite mer kod runt om den kodrad som genererar det felet?

Mvh

@ndersMedlem sedan juni 200032 969 inlägg
#19

Jymdis skrev:

Angående att det är ganska självklart vet jag ju inte riktigt om jag håller med, själva connectionen till databasen gör ju i connect.asp i connections och man hade ju kunnat tänka sig att var än filen inkluderas så är det sökvägen ifrån connections/connect.asp som skulle gälla, men så är det visst inte.

Det är filen som inkluderar databaskopplingen som är den som exekveras, så det är därifrån sökvägen räknas.

Mvh

JymdisMedlem sedan mars 20016 260 inlägg
#20

Okej, då vet jag det - får väl försöka fixa det på nåt snyggt sätt.
Men det viktigaste är kvar, varför får jag det fel jag får på https://www.jymdis.com samt lokalt server.jymdis.com. Det funkar med dsn men inte med dsn-less.

136 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)