webForumDet fria alternativet

GB

23 svar · 532 visningar · startad av dr. Snaggle

dr. SnaggleMedlem sedan jan. 200358 inlägg
#1

Hej!
Någon som kan hjälpa mig?? jag får detta felmedelandet när jag vill visa gb.asp.

felmess:

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 0x2154 Thread 0x2658 DBC 0x2ff2374 Jet'.

/gb.asp, line 8

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("../db/gb.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From gastbok ORDER BY id DESC"
RecSet.Open Addera, Connect, 2, 2 
%>

:q

dr. SnaggleMedlem sedan jan. 200358 inlägg
#2

ovanstående prob. är fixat! (glömt att lägga ut db-filen) ooops :D

dr. SnaggleMedlem sedan jan. 200358 inlägg
#3

nytt problem! :S

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 0x2154 Thread 0x2658 DBC 0x300505c Jet'.

/gastbok/default.asp, line 153

och på den raden finns detta:

Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("../db/_gbook_.mdb") & ";pwd=phat"

KoTTeNMedlem sedan sep. 20011 722 inlägg
#4

Har du rätt sökväg till databasen?
Ett tips är att använda Jet istället som anses som snabbare och stabilare.

Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=phat;Data Source=" & Server.MapPath("../db/_gbook_.mdb")
dr. SnaggleMedlem sedan jan. 200358 inlägg
#5

Jag har ringt och kollat med webbhotellet nu och databasen ska ligga i mappen logs.

Hur ska min databaskoppling se utdå? mina asp och incfiler ligger i www/gb. och db:n i logs.

just nu ser den ut så här:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=phat;Data Source=" & Server.MapPath("logs\gb.mdb")

:q

dahlgrenMedlem sedan aug. 20011 946 inlägg
#6

Om logs ligger i www mappen så kan du prova att skriva så här:

<% 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=phat;Data Source=" & Server.MapPath("/logs/gb.mdb")
dr. SnaggleMedlem sedan jan. 200358 inlägg
#7

logs ligger där www mappen ligger... :P förstår du hur jag menar?

dahlgrenMedlem sedan aug. 20011 946 inlägg
#8

japp, då borde detta funka om filen vi utgår ifrån ligger direkt i www mappen. om den inte gör det utan ligger i en under mapp så får du peta in yterlligare ett "../" för att kliva upp en till nivå. Hoppas det funkar.

<% 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=phat;Data Source=" & Server.MapPath("../logs/gb.mdb")
dr. SnaggleMedlem sedan jan. 200358 inlägg
#9

okej! det funka fint! tack!
nu har jag dock stött på ett till prob.
Problemet är att jag inte kan radera inläggen. När jag skriver in mitt lösenord skickas jag till:

The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.

kod:

<!-- #include file="adovbs.inc" -->

<%
If Request.Form("pass") = "password" Then

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../logs/gb.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From gb Where id =" & Request.Querystring("id")
RecSet.Open Addera, Conn, adOpenStatic, adLockOptimistic

RecSet.Delete

RecSet.Close
End If

Response.Redirect "gb.asp"
%>

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

Alltså....sidan finns inte.

dr. SnaggleMedlem sedan jan. 200358 inlägg
#11

visst finns den! :P

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

Är det rätt sökväg då?

dr. SnaggleMedlem sedan jan. 200358 inlägg
#13

jadå... det är rätt sökväg

jag vet inte hur jag ska förklara...
hemsidan består av ramar. i menyn har jag länkat till gb.asp, där skriver man inlägg och läser. ovanför varje inlägg finns en länk som heter erase, och klickar man på den kommer man till en annan sida (delete.asp) där man skriver in ett lösenord för att tabort inlägget. MEN när jag har skrivit in lösenordet händer det som jag beskrev i förra inlägget.
säg till om ni behöver veta mer!

dr. SnaggleMedlem sedan jan. 200358 inlägg
#14

ingen som vet och kan hjälpa mig??

KoTTeNMedlem sedan sep. 20011 722 inlägg
#15

Alltså hittar den inte sidan som ska kontrollera lösenordet eller sidan som du skickas till efteråt.

Det är bara att följa upp vart alla länkar tar vägen och identifiera var det är.

Sen bara ändra :)
Hör av dig hur det går!

solbulleMedlem sedan mars 20015 287 inlägg
#16

Ja precis, är du säker på att det är den där sidan det är fel i? Kan det inte vara fel i din "action" i formuläret på sidan delete.asp?

dr. SnaggleMedlem sedan jan. 200358 inlägg
#17

Jag får inte rätt på det så jag skickar koden!

delete.asp:

<html>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<center>
<table width="300" cellspacing="3" cellpadding="0">
<tr>
 <td>
  <form action="delete_do.asp?id=<%=Request.Querystring("id")%>" method="post"> 
   <input type="text" name="pass" size="30"> Ange lösenordet<br>
   <input type="submit" value=" DELETE ">
  </form>
 </td>
</tr>
</table>

do_delete.asp:

<!-- #include file="adovbs.inc" -->

<%
If Request.Form("pass") = "smk" Then

Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../logs/gb.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From gb Where id =" & Request.Querystring("id")
RecSet.Open Addera, Conn, adOpenStatic, adLockOptimistic
	
	RecSet.Delete

RecSet.Close
End If

Response.Redirect "gb.asp"
%>

Det är när jag klickar på delete(skickar lösen) det blir fel:

The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.

Tacksam för hjälp med detta!

//Stefan

m_soderlundMedlem sedan sep. 20026 425 inlägg
#18

Tjae, låter som att sidan helt enkelt inte exekveras. Jag vet inte riktigt vad det beror på, men din kod kan i alla fall förbättras väsentligt. Man behöver inte skapa ett nytt Recordset-objekt för att radera info från en databas.. Kod kommer!

dr. SnaggleMedlem sedan jan. 200358 inlägg
#19

Har det ngt med <%=Request.Querystring("id")%> att göra? eftersom jag gb:n ligger "mellan" ramar?

m_soderlundMedlem sedan sep. 20026 425 inlägg
#20

Testa denna kod i stället:

<%
If Request.Form("pass") = "smk" Then

Dim Cn
Set Cn = Server.CreateObject("ADODB.Connection") 
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("../../logs/gb.mdb")

Cn.Execute ("DELETE * FROM gb Where Id=" & Request.Querystring("id")),,128

Cn.Close : Set Cn = Nothing
Response.Redirect "gb.asp"
End If
%>

Du hade glömt att stänga Conn-objektet också, och sen ändrade jag anslutningssträngen lite. OLEDB är snabbare än ODBC som du körde med innan.. Dessutom blev det ju lite mindre kod också, som är snabbare. Effektivt!

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