Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


error '80020009' Exception occurred

Postades av 2002-10-30 09:35:28 - Lena Christensson, i forum asp - allmänt, Tråden har 7 Kommentarer och lästs av 486 personer

Jag har problem med att skrva ut text från mitt recordset, den sista posten faller bort och istället får jag "error '80020009' Exception occurred".

Vad jag vill göra är att kunna skapa behörigheter för användare till vissa kategorier. Jag lägger alltså upp en användare och därefter ska jag lägga till eller kunna ändra behörighet till kategorier som användaren ska ha access till.
När jag klickar på ett av namen vill jag hämta in och skriva ut samtliga kategorier med tillhörande checkbox. Om användaren redan har access till vissa kategorier så ska dessa checkboxar vara förbockade.
Problemet uppstår när den sista kategorin ska skrivas ut vid "sin" checkbox.

Det ser ut som följer:
Hämtar in kategorier
<%
set cat = Server.CreateObject("ADODB.Recordset")
cat.ActiveConnection = MM_conn_STRING
cat.Source = "SELECT catid,catname FROM cat ORDER BY catid ASC"
cat.CursorType = 0
cat.CursorLocation = 2
cat.LockType = 3
cat.Open()
%>

Hämtar eventuella kategorier som användaren redan har behörighet till (tabellen innehåller catid och userid)
<%
set user_cat = Server.CreateObject("ADODB.Recordset")
user_cat.ActiveConnection = MM_conn_STRING
user_cat.Source = "SELECT catid,userid FROM user_cat WHERE userid = " & userID & " ORDER BY catid ASC"
user_cat.CursorType = 0
user_cat.CursorLocation = 2
user_cat.LockType = 3
user_cat.Open()
%>

Och slutligen skriver jag ut... eller nåja.. försöker iaf...
<%
if not cat.BOF or not cat.EOF then
do until cat.EOF
%>
<input type="checkbox" name="cat" value="<%=cat.Fields.Item("catid").Value%>"
<%if not user_cat.BOF or not user_cat.EOF then
if user_cat.Fields.Item("catid").Value = cat.Fields.Item("catid").Value then
%>
checked
<%
user_cat.MoveNext()
end if
end if
%>
>
<%
Response.Write(cat.Fields.Item("catname").Value & "<br>")
cat.MoveNext()
loop
end if
%>






Svara

Sv: error '80020009' Exception occurred

Postades av 2002-10-30 10:30:34 - Ulf Elfving

Hade ett liknande problem:
Löste det med att ha en mellantabell där jag lagrade alla cat + om den är aktiv eller inte

cat
---
catid
catname

user
---------
userid
username

user_cat
---------
userid
catid
active

När jag addar en person har jag ett form som loppar ut samtliga cat:

Namn:
' loopa ut samtliga cat som finns och sätt ut kryss ruta efter dom
cat1:
cat2:
cat3:...

Sedan sparar jag ner de kryss som markerats i formuläret i user_cat tabellen

Vet inte om jag förklarat som en påse nötter...
Kanske finns en bättre lösning med att joina tabellerna i en enda fråga istället
/uffe


Svara

Sv: error '80020009' Exception occurred

Postades av 2002-10-30 10:52:16 - Lena Christensson

Om jag plockar bort kollen för BOF i if-satserna så fungerar det:
if not cat.EOF or not cat.BOF then -» if not cat.EOF then
och
if not user_cat.EOF or not user_cat.BOF -» if not user_cat.EOF

Vet någon varför?
Vad är det jag har missat angående BOF?


Svara

Sv: error '80020009' Exception occurred

Postades av 2002-10-30 10:55:48 - Andreas Hillqvist

Du ska ALLTID använda ett connection objekt i ASP. Annars håller recordsetet öppet anslutningen internt vilket kräver resurser.

Du kan lösa det med en under fråga istället:
<code>
<%
Dim Con
Dim cat
Dim strSQL
Dim fldId
Dim fldName
Dim fldSelected

Set Con = Server.CreateObject("ADODB.Recordset")
Con.Open MM_conn_STRING

strSQL = "SELECT cat.catid, cat.catname, cat.catid IN (SELECT user_cat.catid" & vbCrLf & _
" FROM user_cat" & vbCrLf & _
" WHERE user_cat.userid = " & userID & ") As catSelected" & vbCrLf & _
"FROM cat" & vbCrLf & _
"ORDER BY cat.catname"

Set cat = Server.CreateObject("ADODB.Recordset")
cat.Open strSQL, Con

Set fldId = cat.Fields.Item("catid")
Set fldName = cat.Fields.Item("catname")
Set fldSelected = cat.Fields.Item("catSelected")

Do Until cat.EOF
%>
<input type="checkbox" name="cat" value="<%=fldId.Value%>" <%if fldSelected.Value then Response.Write " checked"%>><%
Response.Write fldName.Value & "<br>" & vbCrLf
cat.MoveNext
Loop

Set fldId = Nothing
Set fldName = Nothing
Set fldSelected = Nothing

cat.Close
Set cat = Nothing

Con.Close
Set Con = Nothing
%>
</code>



Svara

Sv: error '80020009' Exception occurred

Postades av 2002-10-30 11:13:18 - Lena Christensson

Jag hänger inte med... använder jag inte connection objekt?
Vart...?
Ta det lite tydligare...

Ska testa med din sql-sats.


Svara

Sv: error '80020009' Exception occurred

Postades av 2002-10-30 11:17:23 - Andreas Hillqvist

Jag antar att MM_conn_STRING är en konstant eller sträng med din anslutnings sträng.<br>
Istället för att skriva:
<code>
cat.ActiveConnection = MM_conn_STRING

</code>
Bör du skriver du:
<code>
Set Con = Server.CreateObject("ADODB.Recordset")
Con.Open MM_conn_STRING

Set cat.ActiveConnection = Con
</code>


Svara

Sv: error '80020009' Exception occurred

Postades av 2002-10-30 11:36:33 - Lena Christensson

Jo det stämmer det är anslutningssträngen.
Det känns som "tårta på tårta" med två anslutningar. Är inte Con öppen ändå, den stängs ju inte förrän sist?


Svara

Sv: error '80020009' Exception occurred

Postades av 2002-10-30 12:15:43 - Andreas Hillqvist

Om du skapar din connection objekt. Kan du explecit stänga den. Det kan du inte om recordsetet skapar den. Dessutom kan du ju använda ett connection objekt till flera recordset.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 812
27 960
271 761
519
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies