JymdisMedlem sedan mars 20016 260 inlägg 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 Varför inte använda den fysiska sökvägen då?
JymdisMedlem sedan mars 20016 260 inlägg 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 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 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"
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 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 Funkar inte detta?
Server.mappath("/../data/databas.mdb")
cyprysMedlem sedan dec. 20003 563 inlägg 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 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 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 @ndersMedlem sedan juni 200032 969 inlägg JymdisMedlem sedan mars 20016 260 inlägg Nä det fixa inte det. Jag är öppen för alla förslag.
@ndersMedlem sedan juni 200032 969 inlägg
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 @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 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
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
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 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.