Avatar billede martin_moth Mester
25. april 2003 - 01:22 Der er 5 kommentarer og
1 løsning

Provider error '80004005' (igen)

Jeg ved godt at der er besvarede spørgsmål om Provider error '80004005' - men ingen forklarer mit spørgsmål :o(

Jeg connecter til min database to gange på samme asp-side. Dette er en "test-side", hvor jeg leget lidt med min database, for at teste hvordan jeg kan lave forskellige ting.

Først:

  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../database/brugere.mdb")
  strSQL = "SELECT * FROM Brugere WHERE BrugerEmail = '" & Recievedemail & "'"
  Set rs = Conn.Execute(strSQL)

Herefter læser jeg nogle poster osv, og lukker:
  Conn.Close
  Set Conn = Nothing
  Set re = Nothing

Virker perfekt!

Længere ned på samme side gør jeg PRÆCIS det samme (altså Set Conn = Server.CreateObject... osv), pånær min strSQL der er ændret til:

  strSQL = "SELECT * FROM Brugere"

Og så får jeg fejlen...

Jeg kan bare lade være med at lukke og åbne forbindelsen igen på samme asp-side (for så virker det) - men jeg undrer mig over hvorfor jeg får den fejl når jeg gør det???
Avatar billede martin_moth Mester
25. april 2003 - 01:25 #1
PS: Også p en helt "alm" asp-side, hvor jeg bare læser poster ud fra en database, får jeg fejlen, når jeg refresher i Internet Explorer... Huh?
Avatar billede mm12010 Nybegynder
25. april 2003 - 01:26 #2
du kan sagtens bruge den samme forbindelse til alle DB-kald på den samme side

hvorfor du får fejlen ved jeg ikke helt...
Avatar billede martin_moth Mester
25. april 2003 - 01:35 #3
Har leget lidt med det - refresher jeg browseren med 1 minuts mellemrum får jeg ingen fejl, men refresher jeg med 5 sek. mellemrum får jeg fejl...

Kan det være noget med, at den ikke får lukket forbindelsen ordentligt - på trods af at jeg skriver:
  Conn.Close
  Set Conn = Nothing
  Set re = Nothing
Og når jeg så kører endnu en omgang
  Set Conn = Server.CreateObject osv osv
så kommer der en fejl, fordi der allerede ER en forbindelse...

Og så er der sikkert en timeout på forbindelsen, så den SELV lukker ned - derfor kommer fejlen IKKE når jeg bare venter længe nok...

Lyder altsammen fornuftigt (synes jeg), og det får mig til at tro at der er noget i vejen med
  Conn.Close
  Set Conn = Nothing
  Set re = Nothing

Anyone?
Avatar billede heyde Nybegynder
25. april 2003 - 01:48 #4
Dette kan du bare køre en enkelt gang i toppen af siden:
Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../database/brugere.mdb")

Når du skal hente info fra databasen skriver du følgende:
  strSQL = "SELECT * FROM Brugere WHERE BrugerEmail = '" & Recievedemail & "'"
  Set rs = Conn.Execute(strSQL)

Næste gang du skal hente data skriver du så bare dette:
strSQL = "SELECT * FROM Brugere
Set rs = Conn.Execute(strSQL)

I bunden af siden slutter du så af med følgende:
Conn.Close
Set Conn = Nothing
Set rs = Nothing

Jeg er ikke 100% sikker på at det løser dit problem, men det er i hvert fald meget bedre end at tilslutte til databasen hver gang du vil hente noget information.
Avatar billede martin_moth Mester
25. april 2003 - 01:54 #5
For at gøre det HELT SIMPELT:

Filen confirm2.asp ligger her:
www.kalundborgdyreklinik.dk/brugeradm/confirm2.asp

Og ser sådan her ud:
<HTML>
<HEAD>
</HEAD>
<BODY>
Poster i database:<br />
<%
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../database/brugere.mdb")
  strSQL = "SELECT * FROM Brugere"
  Set rs = Conn.Execute(strSQL)
  Do
    Response.Write rs("BrugerFornavn") & " - "
    Response.Write rs("BrugerEfternavn") & " - "
    Response.Write rs("BrugerEmail") & " - "
    Response.Write rs("BrugerPostnummer") & " - "
    Response.Write rs("BrugerAktiv")
    Response.Write "<br />"
    rs.MoveNext
  Loop While Not rs.EOF
  Conn.Close
  Set Conn = Nothing
  Set rs = Nothing
%>
<br />
Slut
</BODY>

Pråv at gå til siden - det virker fint. Prøv at refresh et par gange - der kommer fejl. Vent så lidt, tryk refresh igen, og det virker igen

HVORFOR???
Avatar billede martin_moth Mester
25. april 2003 - 01:57 #6
Jeg fortsætter på http://www.eksperten.dk/spm/344421 - for ikke at blande for meget sammen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester