webForumDet fria alternativet

Provider (0x80004005) Åtgärden avbröts

ASP

3 svar · 173 visningar · startad av hEWRa

Medlem sedan juli 200212 inlägg
Frågan#1

Hejsan, jag håller på och bygger en sida där man skall kunna registrera sig för att kunna kommentera olika inlägg som finns på sidan. När man ska registrera sig kollas användarnamnet upp mot register databasen för att se till så att ingen registererar med samma namn som någon annan, ganska logsikt. När man ska registrera sig och namnet är upptaget blir man redirectad till sidan och får förklarat för sig att namnet är upptaget och att man måste hitta på ett annat. När man ska försöka regisrera sig på nytt med ett annat namn så funkar inte detta. Men det funkar om man typ väntar 5mins.

Felmeddelandet:
Provider (0x80004005)
Åtgärden avbröts
/mamma/register.asp, line 7

OBS! Line 7 ligger databas anslutningen på

Koden:

<%
If Request.Querystring("vad") = "register" Then

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/flash.mdb")&";"

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

Addera = "SELECT namn FROM personer"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

X = FALSE

Do until X = TRUE Or RecSet.EOF

If RecSet("namn") = Request.Form("namn") Then
  X = TRUE
  Exit Do
  End If

RecSet.MoveNext
Loop

RecSet.Close

If X = FALSE Then

Addera = "SELECT namn, enamn, losen, epost FROM personer"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

  RecSet.AddNew

RecSet("namn") = Request.Form("namn")
RecSet("enamn") = Request.Form("enamn")
RecSet("losen") = Request.Form("losen")
RecSet("epost") = Request.Form("epost")

RecSet.Update
RecSet.Close
Connect.Close
Set RecSet=Nothing
Set connect=Nothing

Response.Redirect "admin.asp?name=registered"

ElseIf X = TRUE Then

Connect.Close
Set Connect=Nothing
Set RecSet=Nothing

Response.Redirect "register.asp?name=used"

End If
End If	

%>

Någon som ser något fel? ;)

Medlem sedan juli 200212 inlägg
#2

Hoppsan va skummt.. Verkar som min IIS 5.0 i XP Proffesional har knasat sig. Jag testade att köra scriptet på servern där det funkade helt perfekt där jag kör win2k server utan en enda update. Skummt... Jaja nu funkar det iaf

Medlem sedan dec. 200012 464 inlägg
#3

Ok, men jag tycker i alla fall att du skall ändra koden. Att nästan alltid hämta alla poster från databasen är väldigt ineffektivt.

<% 
dim connect,q,recset,reg
If Request.Querystring("vad") = "register" Then 

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/flash.mdb")&";" 

q = "SELECT 1 FROM personer where namn = '" & replace(request.form("namn"),"'","''") & "'" 
set recset = connect.execute(q)

if recset.eof then
   q = "insert into personer(namn,enamn,losen.epost) values (" & _
   "'" replace(request.form("namn"),"'","''") & "'," & _
   "'" replace(request.form("enamn"),"'","''") & "'," & _
   "'" replace(request.form("losen"),"'","''") & "'," & _
   "'" replace(request.form("epost"),"'","''") & "')" 
   connect.execute q,,128
   reg = true
else
   reg = false
end if

RecSet.Close 
Connect.Close 
Set RecSet=Nothing 
Set connect=Nothing 
if reg then Response.Redirect "admin.asp?name=registered" 
Response.Redirect "register.asp?name=used"  
End If 
%>
Medlem sedan juli 200212 inlägg
#4

För er som stött på samma problem så vill jag bara meddela att det enda som behövs göra för att rätta till detta fel är att högerklicka på wwwroot, ta säkerhet, lägga till användaren IUSR_[DITT_DATORNAMN] senda ge den read and write rättigheter, så ska allt funka prima... Over and out! ;)

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