webForumDet fria alternativet

Fattar inte.....

ASP

7 svar · 576 visningar · startad av supercajo

Medlem sedan jan. 2005114 inlägg
Frågan#1

har gjort följande connection till min data bas:

då den ligger i en katalog, två nivåer upp, och sen väl i huvudniån, en in i mappen databases, utanför rootkatalogen....

<%
Set Connect = Server.CreateObject("ADODB.Connection")
>Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=../../database/srb.mdb"<
Addera = "SELECT * FROM Anstalld"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

RecSet.AddNew
RecSet("namn") = Request.Form("namn")
RecSet("adress") = Request.Form("adress")
RecSet.Update
RecSet.Close
Connect.Close

%>

Då jag har denna kod, får jag följande felmeddelande...:

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 0x1ac8 Thread 0x3c30 DBC 0x16bd244 Jet'.

/beta/add.asp, line 12

Jag fattar att det är något på rad tolv, vilket vill säga det som är > & <.

är jag dum? eller blind?

Medlem sedan feb. 20011 198 inlägg
#2

Tänk på att skriva kod inom [ kod]-taggar så blir det lättare att läsa här på wF.

Man kan inte ha virtuell sökväg som dbq.
Testa detta.

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("../../database/srb.mdb")
Medlem sedan dec. 20014 239 inlägg
#3

Kör du på egen server? Normalt sett är Parent paths avstängt av säkerhetsskäl men då borde du fått ett annat meddelande.

'80004005' låter som ett rättighetsproblem. Att du inte har skrivrättigheter på katalogen som databasen ligger i.

Om du söker lite på webforum får du säkert upp fler som har haft samma problem.

Medlem sedan sep. 20005 700 inlägg
#4

Flyttad från Programmering - Övrigt.

Medlem sedan feb. 200112 078 inlägg
#5

1. Först och främst; byt raden mot:

Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("../../database/srb.mdb")

2. Felet beror sannolikt på att 1) databasfilen hittades inte eller 2) du har inte rättigheter nog. Jag kommer inte ihåg vilket, men gissar på 1.

Medlem sedan jan. 20022 440 inlägg
#6

Vill man vara riktigt petig ska det faktiskt vara:

Server.Mappath("\") & "..\..\database\srb.mdb"

Detta för att asp/iis/apache ska ha vett nog att utgå ifrån rooten av websidan och inte den mapp där filen råkar befinna sig.

Medlem sedan nov. 20017 144 inlägg
#7

Varför måste man konkatenera?

Medlem sedan jan. 20022 440 inlägg
#8

Jesper T skrev:

Varför måste man konkatenera?

Det var den enda lösningen som fungerade för en faslig massa år sedan. Kommer inte ihåg vem av alla gurus det var som hjälpte mig då, annars hade jag hänvisat till deras mäktiga allvetande.

Eftersom asp inte utvecklats efter 3.0 så antar jag att folk fortfarande kan ha samma problem, varför inte ta det säkra före det osäkra? ;)

Det var såhär att min applikation vägrade gå bakom wwwrooten om jag inte konkatenerade.

618 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
346 ms — deklarationer (db)
0 ms — hämta statistik (cache)
270 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)