24. januar 2006 - 10:11Der er
3 kommentarer og 1 løsning
Operation is not allowed when the object is closed
Jeg har en asp-side hvor jeg gemmer et recordset i en session variabel og henter det igen hvis start > 1
if start > 1 and not IsEmpty(session("poster")) Then set poster = session("poster") poster.movefirst else Set poster = conn.execute(noget sql-kode) set session("poster") = poster end if
Jeg ved det lyder tosset, men på nogle browsere har jeg et problem.
Hvis jeg i slutningen af asp-siden har følgende:
conn.close set conn = nothing
så får jeg denne fejl:
ADODB.Recordset error '800a0e78' Operation is not allowed when the object is closed.
Hvis jeg fjerner
conn.close set conn = nothing
er der ingen problemer.
Er der nogen som har en fornuftig forklaring - især på at det kun er på nogle browsere problemet opstår.
Det gør jeg naturlig også. Jeg regnede ikke med at det var nødvendigt at fortælle. Hvis ikke jeg havde conn.open med, så ville min conn.execute(..) jo heller ikke virke, hvilket den altså gør.
Hvis det er conn.close der fremkalder fejlen, så må det jo være fordi conn ikke er åben. Så check lige din kode igen. Alt dette forklarer ikke at fejlen kun opstår i nogle browsere, hvilket jeg synes er meget sært. Det er kun ting som cookies og javascript der er browserafhængigt.
I øvrigt fraråder mange at man gemmer recordsets i session variabler. overvej at bruge et array i stedet:
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.