Undantag inträffade...

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Mika3l
    Medlem
    • 2001-11-18
    • 3776

    #1

    Undantag inträffade...

    Efter att jag stängt eller öppnat en tråd i ett forum jag gör så ska man skickas vidare till tråden, man skickas vidare men varje gång man kommer dit så får jag ett felmeddelande.

    Feltyp:
    (0x80020009)
    Undantag inträffade.



    If Session("user") = rsCheckModerators("mod1") OR Session("user") = rsCheckModerators("mod2") OR Session("user") = rsCheckModerators("mod3") OR Session("user") = rsCheckModerators("mod4") OR Session("user") = rsCheckModerators("mod5") OR Session("user") = rs("namn") OR typ = "Forumledare" Then


    Den här koden fungerar utmärkt annars när man kollar på sidan man inte när man skickas dit efter att ha stängt eller öppnat en tråd.
    Jag har även testat med att sätta ( och ) runt...



    Please help!


    /Mika3l
    Det stora datatestet:
    För att börja testet tryck alt+F4.
    -------------------------------
    Bandet | Sidoprojektet | Portfolion | Bloggen
  • doggelito
    Medlem
    • 2000-06-18
    • 3100

    #2
    Du använder access va?
    Det blir nog för många anrop till databasen, jag tycker jag känner igen felet, tyvärr!
    (men jag kan ha fel förståss)

    Comment

    • Mika3l
      Medlem
      • 2001-11-18
      • 3776

      #3
      Jag använder Access(2000).
      Jag kan inte tänka mig att det blir för många anrop till databasen med tanke på att det fungerar annars, fast det är ju möjligt...
      Det stora datatestet:
      För att börja testet tryck alt+F4.
      -------------------------------
      Bandet | Sidoprojektet | Portfolion | Bloggen

      Comment

      • Mika3l
        Medlem
        • 2001-11-18
        • 3776

        #4
        Hmm, testade att ta bort det, fungerade...
        Finns det något sätt man kan lösa det på?
        Det stora datatestet:
        För att börja testet tryck alt+F4.
        -------------------------------
        Bandet | Sidoprojektet | Portfolion | Bloggen

        Comment

        • doggelito
          Medlem
          • 2000-06-18
          • 3100

          #5
          om du hämtar och listar många poster på den sidan så kan du ju prova att hämta med getrows istället.
          försök att optimera sql-strängarna, använda joins istället för att öppna separat m.m.
          brukar kunna hjälpa med att skapa en "paging-variant" på sidan också.

          men detta är ju OM det är för många anrop annars vete tusan!

          Comment

          • Mika3l
            Medlem
            • 2001-11-18
            • 3776

            #6
            Hmmm, jag kan inget om getrows och jag kan inget om join i SQL...
            Men om man lägger allt i variabler så används ju bara databasen en gång för att ge värden, sedan så används ju bara variablerna...?
            Fast frågan är ju om det är för många anrop, med tanke på att det fungerar annars så tror jag nog att så inte är fallet...
            Det stora datatestet:
            För att börja testet tryck alt+F4.
            -------------------------------
            Bandet | Sidoprojektet | Portfolion | Bloggen

            Comment

            • doggelito
              Medlem
              • 2000-06-18
              • 3100

              #7
              visa sidan vetja så kanske man kan lista ut nått smart!

              Comment

              • Mika3l
                Medlem
                • 2001-11-18
                • 3776

                #8
                Den här koden visar tråden(inte svaren).
                [kod]
                Set rs = Server.CreateObject("ADODB.Recordset")
                SQL = "SELECT IID, rubrik, namn, inlagg, datum, forum, stangd, senaste FROM inlagg WHERE IID = " & Request.QueryString("IID") & ""
                rs.Open SQL, Connection
                Set rsMemberInfo = Server.CreateObject("ADODB.Recordset")
                SQLMemberInfo = "SELECT anvnamn, regdatum, typ, antalinlagg, email, ort, signatur FROM medlemar WHERE anvnamn = '" & rs("namn") & "'"
                rsMemberInfo.Open SQLMemberInfo, Connection

                Response.Write"<table align=""center"" valign=""top"" width=""600"" cellspacing=""0"" cellpadding=""2"">"
                Response.Write"<tr valign=""middle""><td width=""370"" align=""left"" colspan=""1""><a href=""forum.asp?page=visaforum&forum=" & Request.QueryString("forum") & """ class=""rubrik"">" & Request.QueryString("forum") & "</a> - <a href=""forum_visatrad.asp?IID=" & rs("IID") & "&forum=" & Request.QueryString("forum") & """ class=""rubrik"">" & rs("rubrik") & "</a></td>"
                If rs("stangd") = False Then
                Response.Write"<td align=""right"" width=""230""><a href=""forum_svara.asp?IID=" & rs("IID") & "&forum=" & Request.QueryString("forum") & "&rubrik=" & rs("rubrik") & """><strong>Skriv inlägg</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;</td></tr>"
                Else
                Response.Write"<td align=""right"" width=""230""><strong><s>Skriv inlägg</s> - Tråd stängd</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;</td></tr>"
                End If
                Response.Write"</table><table align=""center"" valign=""top"" width=""600"" cellspacing=""0"" cellpadding=""2"">"
                Response.Write"<tr height=""3""><td width=""140""></td><td width=""460""></tr>"
                Response.Write"<tr valign=""top""><td width=""140"" bgcolor=""#E5E5E5"" align=""left"">"
                Set rsCheckIfOnline = Connection.Execute("SELECT status FROM medlemar WHERE anvnamn = '" & rsMemberInfo("anvnamn") & "'")
                If rsCheckIfOnline("status") = True Then
                on_off = "#0AB60A"
                on_off_text = "Online<br>"
                Else
                on_off = "#FF0000"
                on_off_text = "Offline<br>"
                End If
                rsCheckIfOnline.Close
                Set rsCheckIfOnline = Nothing
                Response.Write"<font style=""font-size: 12px; font-weight: bold;"">" & rsMemberInfo("anvnamn") & "</font>&nbsp;&nbsp;<font color=""" & on_off & """><b>" & on_off_text & "</b></font>"
                If rsMemberInfo("typ") = "Moderator" OR rsMemberInfo("typ") = "Forumledare" Then
                Response.Write"<i>" & rsMemberInfo("typ") & "</i><br><br>"
                Else
                Response.Write rsMemberInfo("typ") & "<br><br>"
                End If
                Response.Write"Registrerad: " & Left(rsMemberInfo("regdatum"),10) & "<br>"
                If rsMemberInfo("ort") <> "" Then
                Response.Write"Ort: " & rsMemberInfo("ort") & "<br>"
                End If
                Response.Write"Inlägg: " & rsMemberInfo("antalinlagg") & "<br><br>"

                Response.Write"<a href=""mess_send.asp?till=" & rs("namn") & """><img src=""images/messa.gif"" width=""20"" height=""11"" border=""0"" alt=""Skicka meddelande till " & rs("namn") & """></a>"
                If rsMemberInfo("email") <> "" Then
                Response.Write"&nbsp;<a href=""mailto:" & rsMemberInfo("email") & """><img src=""images/maila.gif"" width=""14"" height=""9"" border=""0"" alt=""Maila " & rs("namn") & """></a>"
                End If
                SQLCheckModerators = "SELECT mod1, mod2, mod3, mod4, mod5 FROM underkats WHERE forum_namn = '" & Request.QueryString("forum") & "'"
                Set rsCheckModerators = Connection.Execute(SQLCheckModerators)
                If Session("user") = rsCheckModerators("mod1") OR Session("user") = rsCheckModerators("mod2") OR Session("user") = rsCheckModerators("mod3") OR Session("user") = rsCheckModerators("mod4") OR Session("user") = rsCheckModerators("mod5") OR Session("user") = rs("namn") OR typ = "Forumledare" Then
                Response.Write"&nbsp;<a href=""forum_redigera.asp?IID=" & rs("IID") & """><img src=""images/redigera.gif"" width=""14"" height=""13"" border=""0"" alt=""Redigera inlägget""></a>"
                Response.Write"&nbsp;<a href=""forum_tabort.asp?IID=" & rs("IID") & """><img src=""images/tabort.gif"" width=""11"" height=""13"" border=""0"" alt=""Ta bort inlägget""></a>"
                If rs("stangd") = False Then
                Response.Write"&nbsp;<a href=""forum_stangtrad.asp?page=stang&IID=" & rs("IID") & "&forum=" & Request.QueryString("forum") & """><img src=""images/stangtrad.gif"" width=""12"" height=""13"" border=""0"" alt=""Stäng tråden""></a>"
                Else
                Response.Write"&nbsp;<a href=""forum_stangtrad.asp?page=oppna&IID=" & rs("IID") & "&forum=" & Request.QueryString("forum") & """><img src=""images/oppnatrad.gif"" width=""12"" height=""17"" border=""0"" alt=""Öpnna tråden""></a>"
                End If
                End If
                Response.Write"</td><td width=""460"" bgcolor=""#F5F5F5""><strong>" & rs("rubrik") & "</strong>&nbsp;&nbsp;&nbsp;<font color=""#783600"">" & rs("datum") & "</font><br><br>" & fixa(rs("inlagg")) & "</td></tr>"
                Response.Write"<br><table width=""610"" cellspacing=""0"" cellpadding=""0""><tr><td width=""510"">"
                Response.Write"</table><br><br>"



                rsMemberInfo.Close
                Set rsMemberInfo = Nothing
                [/kod]

                Finns väl säkert något bättre sätt att lösa det på...
                Det stora datatestet:
                För att börja testet tryck alt+F4.
                -------------------------------
                Bandet | Sidoprojektet | Portfolion | Bloggen

                Comment

                • doggelito
                  Medlem
                  • 2000-06-18
                  • 3100

                  #9
                  Kan det vara att du inte har med:

                  rsCheckModerators.Close
                  Set rsCheckModerators = Nothing

                  någonstans, eller finns det mer kod under?

                  Annars, det man kan se är väl att du har väldigt många kopplingar till databasen, du borde nog kunna minska med ett par, men det förutsätter ju så klart att man vet hur man ska göra också.
                  t.ex. borde du kunna sätta ihop dessa till en: rsMemberInfo, rsCheckIfOnline[kod]
                  "SELECT anvnamn, regdatum, typ, antalinlagg, email, ort, signatur, status FROM medlemar WHERE anvnamn = '" & rs("namn") & "' "

                  'dessa rader borde väl funka ändå!
                  If rsMemberInfo("status") = True Then
                  on_off = "#0AB60A"
                  on_off_text = "Online<br>"
                  Else
                  on_off = "#FF0000"
                  on_off_text = "Offline<br>"
                  End If[/kod]
                  eventuellt kan du kanske också göra en join mellan inlagg och medlemar, förenklat så skulle det kunna se ut:[kod]"SELECT m.anvnamn, m.regdatum, i.rubrik, i.inlagg FROM medlemar m LEFT JOIN inlagg i ON m.anvnamn = i.namn WHERE IID = " & Request.QueryString("IID") & "" [/kod] men det var bara en idé

                  Comment

                  Working...