Avatar billede cesil Nybegynder
09. oktober 2002 - 08:36 Der er 11 kommentarer og
1 løsning

oConn.Execute

Hej Eksperter
De sidste dage har jeg oplevet at få følgende fejl på mit websted:

Error Type:
Microsoft VBScript runtime (0x800A01FB)
An exception occurred: 'oConn.Execute'

Fejlen kommer kun en gang imellem og ikke samme sted. Den kommer aldrig med det samme, men først når jeg har lavet forespørgsler på webstedet.

Jeg kan ikke finde nogen steder hvor fejlen er beskrevet, men måske der er nogle af jer der har oplevet noget tilsvarende og ved hvordan jeg kan løse det.
Avatar billede cesil Nybegynder
09. oktober 2002 - 08:39 #1
jeg glemte at nævne at jeg skal lukke browseren og starte en ny for at komme forbi fejlen.
Avatar billede medions Nybegynder
09. oktober 2002 - 08:40 #2
Hmm kan ejg ikke prøve at se koden?

//>Rune
Avatar billede eagleeye Praktikant
09. oktober 2002 - 08:46 #3
Det er en god ide altid at lukke for recordset og forbindelse til databasen efter du har brugt dem, det kan måske være derfor:

RS.Close
set RS = nothing

oConn.close
Set oConn = nothing
Avatar billede cesil Nybegynder
09. oktober 2002 - 09:02 #4
Det gør jeg for så vidt altid. Jeg kan selvfølgelig ha glemt det hist og her men prøver ihvertfald og huske det.
Kan jeg på nogen måde checke enten hvor jeg ikke har fået lukket recordset'ene eller gøre et eller andet for at lukke dem alle.
Avatar billede eagleeye Praktikant
09. oktober 2002 - 09:25 #5
du kan gøre  noget i stil med for at sikre man ikke får fejl når man lukker forbindelsen. På samme måde kan gøre med recordset.

if not (oConn is nothing) then
  oConn.close
  Set oConn = nothing
end if
Avatar billede eagleeye Praktikant
09. oktober 2002 - 09:29 #6
En typsik "fejl" hvor man ikke får lukket et recordset kommer når man åbner det på denne  måde:

Set rs = oConn.Execute(SQL)
..
..
..
'Disse to linier bliver mange gange glemt når man bruger Set
rs.Close
Set rs = nothing


Men derimod husker man den tit når man gør sådan her:
rs.Open SQL, oConn, 1
..
..
..
rs.Close
Set rs = nothing


Det er min erfaring og når jeg kigger i noget af de kode jeg har lavet så har jeg også flere steder glemt det hvor jeg bruger Set rs = connection  til at åbne recordsetet.
Avatar billede cesil Nybegynder
09. oktober 2002 - 09:37 #7
Kan man bygge ind i den her at hvis fx oRs2 findes og ikke er lukket så skal den lukkes. Så vil jeg lave en include og smide i bunden af alle sider der sørger for at lukke dem der findes og ikke er lukkede

if not (oConn is nothing) then
  oConn.close
  Set oConn = nothing
end if
Avatar billede eagleeye Praktikant
09. oktober 2002 - 09:56 #8
if not (oRs2 is nothing) then
  oRs2.close
  Set oRs2 = nothing
end if
Avatar billede cesil Nybegynder
09. oktober 2002 - 10:08 #9
jo men hvad nu hvis oRs2 ikke findes på siden. Får jeg så ikke en fejlmeddelse?
Avatar billede eagleeye Praktikant
09. oktober 2002 - 10:16 #10
if 'en skulle sikre at der ikke kommer fejl.

Hvis oRs2 ikke findes så er den lig med nothing

if not (oRs2 is nothing) then
Avatar billede medions Nybegynder
09. oktober 2002 - 10:25 #11
Eagleeye> Nu er jeg lidt i tvivl... Skal det ikke hede

if not IsNothing(oRs2) then
  oRs2.close
  Set oRs2 = nothing
end if

?

eller

if IsEmpty(oRs2) then
  oRs2.close
  Set oRs2 = nothing
end if

?
//>Rune
Avatar billede medions Nybegynder
09. oktober 2002 - 15:27 #12
? Hvorfor har jeg fået points?

Well, anyway
Thx 4 Poinz

//>Rune
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