Avatar billede meyer Nybegynder
06. juni 2008 - 08:55 Der er 5 kommentarer og
1 løsning

hvad går galt her - Wend probs

Så er menusystemet næsten færdigt, men jeg kan ikke se hvorfor den her går galt - mon her er et par friske øjne der kan fortælle mig hvorfor dewn kommer med fejlen nede ved (rs2.movenext) WEND ?

<!--#include file="db.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<HEAD>
  <TITLE>menutest</TITLE>
<link rel="stylesheet" media="all" type="text/css" href="dropdown.css" />
<style type="text/css">
body, html {
    height: 100%;
    margin: 0;
        padding: 0;
}
</style>
     
        <style type="text/css" media="screen"><!--
#layer1 { height: 0; width: 750px; z-index: 100; position: top; visibility: visible; }
--></style>
        <!--[if lte IE 6]>
<link rel="stylesheet" media="all" type="text/css" href="dropdown_ie.css" />
<![endif]-->
</HEAD>

<body topmargin="0">

<div id="layer1" class="menu">
<ul>
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open db

strSQL = "SELECT * FROM menu where hovedmenu = 1 "
Set rs1 = myConn.Execute(strSQL)
While Not rs1.EOF
    h_menu=rs1("menuen")
bredde =  rs1("bredde")
    MenuID = rs1("menuID") %>

    <li ><a  href="<%=rs1("link")%>" onfocus="blur()" style="width:<%=bredde%>px;"><%=h_menu%></a>
    <ul>
<%
strSQL = "Select Max(bredde) AS maxbredde FROM menu where overmenu = '"& MenuID &"' "
    Set rs2 = myConn.Execute(strSQL) 
if not rs2.eof then
bredde =  rs2("maxbredde")
xbredde = bredde + 1 * 1
rs2.close
'response.write bredde
end if

strSQL = "SELECT * FROM menu where overmenu = '"& MenuID &"' "
    Set rs2 = myConn.Execute(strSQL)
    While Not rs2.EOF
        s_menu=rs2("menuen")
      menuID2 = rs2("menuID") %>



      <li><a href="<%=rs2("link")%>" onfocus="blur()" style="width:<%=bredde%>px; text-align:left;">&nbsp;&nbsp;<%=s_menu%></a>
        <ul>
<%   

strSQL = "Select Max(bredde) AS maxbredde FROM menu where undermenu = '"& menuID2 &"' "
    Set rs3 = myConn.Execute(strSQL) 
if not rs3.eof then
subbredde =  rs3("maxbredde")
rs3.close
   

strSQL = "SELECT * FROM menu where undermenu = '"& menuID2 &"' "
        Set rs3 = myConn.Execute(strSQL)
        While Not rs3.EOF
            ss_menu=rs3("menuen") %>
<style type="text/css">
.menu ul li:hover ul li:hover ul {display:block; position:absolute; left:<%=xbredde%>px; top:0;}
</style>




            <li class="menu"><a href="<%=rs3("link")%>" onfocus="blur()" style="width:<%=subbredde%>px; text-align:left;">&nbsp;&nbsp;<%=ss_menu%></a></li>
<%            rs3.MoveNext
        Wend %>
        </ul>
        </li>
       
<%
        rs2.MoveNext
    Wend %>
    </ul>
    </li>
<%    rs1.MoveNext
Wend
rs1.close
rs2.close
rs3.close
myconn.close
%>
</ul>
</div>
</BODY>
</HTML>
Avatar billede meyer Nybegynder
06. juni 2008 - 08:56 #1
Skal lige sige at UDEN det her afsnit fejler den ikke:

strSQL = "Select Max(bredde) AS maxbredde FROM menu where undermenu = '"& menuID2 &"' "
    Set rs3 = myConn.Execute(strSQL) 
if not rs3.eof then
subbredde =  rs3("maxbredde")
rs3.close
Avatar billede softspot Forsker
06. juni 2008 - 09:06 #2
Det er ALTID en super god idé at inkludere fejlbeskeden, da den ofte givere en indikation af hvad der er galt. Umiddelbart vil jeg jo tro det er fordi du mangler en end if (VBScript er ikke som mange andre sprog - det kræver at du afslutter med "end if", hvis du knækker betingelsen over 2 linier). Derfor vil jeg foreslå, at du først forsøger dette, for at se om det er der fejlen ligger:

if not rs3.eof then
subbredde =  rs3("maxbredde")

ændres til:

if not rs3.eof then subbredde =  rs3("maxbredde")
Avatar billede softspot Forsker
06. juni 2008 - 09:13 #3
En anden ting jeg vil anbefale, er at du lukker dine recordsets umiddelbart efter du er færdig med at bruge dem (og ikke efter den ydre løkke som du gør nu). Det er under alle omstændigheder god praksis at frigøre resurser lige så snart man er færdig med dem - specielt så dyre resurser som forbindelser til - og cursors i databaser.

Desuden kunne man frygte at der opstod "leaks", hvis du åbner flere recordsets i samme recordset-variabel uden at lukke dem (men det er mere en tillidssag til COM, end det er noget andet - men lidt paranoia skader vel ikke :-)).
Avatar billede meyer Nybegynder
06. juni 2008 - 09:34 #4
Aii... ja ja - det første man bliver blind på.... ;-)

Ja du kender det sikkert at man sidder og leder efter fejlen og så er den lige for øjnene af en :-)

Tak for hjælpen - smid lige et svar :-)
Avatar billede softspot Forsker
06. juni 2008 - 10:15 #5
Velbekomme :)
Avatar billede softspot Forsker
09. juni 2008 - 09:34 #6
Tak for point :)
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