Avatar billede chameleon Nybegynder
28. august 2001 - 14:28 Der er 24 kommentarer og
2 løsninger

Stort problem med \"function\"??

Kan nogen fortælle mig hvad der er galt med denne function...? - jeg er lidt grøn - please hjælp!

<% Function ShowSubCat

CatId = Request.QueryString(\"CATID\")
SQL = \"SELECT * From cat WHERE sub = \"&CatId
SQL = SQL &\" Order by catname asc\"
set objRec = objCon.Execute(SQL)
%>

<div align=\"left\">
 
<table border=\"0\" width=\"500\" cellspacing=\"10\" cellpadding=\"0\">

<% Do While NOT objRec.EOF %>


<tr>
<TD ALIGN=LEFT  WIDTH=\"165\">
<b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
</TD>
<% if NOT objRec.EOF Then
objRec.MoveNext
end if
if Not objRec.EOF then
%>
<% end if%>

<TD ALIGN=LEFT  WIDTH=\"165\">
<b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
</TD>
<% if NOT objRec.EOF Then
objRec.MoveNext
end if
if Not objRec.EOF then
%>
<% end if%>

<TD ALIGN=LEFT  WIDTH=\"165\">
<b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
</TD>


</tr>

<%
if NOT objRec.EOF Then
objRec.MoveNext
end if
loop
%>
</table>
</div>
<% end function %>
Avatar billede oswald Nybegynder
28. august 2001 - 14:29 #1
Hvad siger den er fejlen? (det gør det lidt nemmere)
Avatar billede nute Nybegynder
28. august 2001 - 14:30 #2
bytt ut function med Sub. Problemet er at du ikke returnerer en verdi på slutten av din funksjon (som function krever)

/nute
Avatar billede chameleon Nybegynder
28. august 2001 - 14:31 #3
ADODB.Field error \'80020009\'

Either BOF or EOF is True, or the current record has been deleted; the operation requested by the application requires a current record.
Avatar billede nute Nybegynder
28. august 2001 - 14:33 #4
næææ....jeg snakker ikke sant :)

prøv denne:

<% Function ShowSubCat

CatId = Request.QueryString(\"CATID\")
SQL = \"SELECT * From cat WHERE sub = \"&CatId
SQL = SQL &\" Order by catname asc\"
set objRec = objCon.Execute(SQL)
%>

<div align=\"left\">
 
<table border=\"0\" width=\"500\" cellspacing=\"10\" cellpadding=\"0\">

<% Do While NOT objRec.EOF %>


<tr>
<TD ALIGN=LEFT  WIDTH=\"165\">
<b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
</TD>

<TD ALIGN=LEFT  WIDTH=\"165\">
<b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
</TD>

<TD ALIGN=LEFT  WIDTH=\"165\">
<b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
</TD>


</tr>

<%

loop
%>
</table>
</div>
<% end function %>


/nute
Avatar billede chameleon Nybegynder
28. august 2001 - 14:33 #5
Nute - jeg får stadig samme fejl, når jeg bytter ud med sub
Avatar billede nute Nybegynder
28. august 2001 - 14:34 #6
hov....jeg glemte å legge inn en

objRec.MoveNext

i linjen over

loop

/nute
Avatar billede oswald Nybegynder
28. august 2001 - 14:35 #7
Problemet er at din if sætning ikke inkluderer din TD udskrivning.
Avatar billede oswald Nybegynder
28. august 2001 - 14:36 #8
<% Function ShowSubCat

CatId = Request.QueryString(\"CATID\")
SQL = \"SELECT * From cat WHERE sub = \"&CatId
SQL = SQL &\" Order by catname asc\"
set objRec = objCon.Execute(SQL)
%>

<div align=\"left\">
 
<table border=\"0\" width=\"500\" cellspacing=\"10\" cellpadding=\"0\">

<% Do While NOT objRec.EOF %>


<tr>
<%if not objRec.EOF then%>
<TD ALIGN=LEFT  WIDTH=\"165\">
<b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
</TD>
<%objRec.movenext
end if   
%>

<%if not objRec.EOF then%>
<TD ALIGN=LEFT  WIDTH=\"165\">
<b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
</TD>
<%objRec.movenext
end if   
%>

<%if not objRec.EOF then%>
<TD ALIGN=LEFT  WIDTH=\"165\">
<b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
</TD>
<%objRec.movenext
end if   
%>


</tr>

<%

loop
%>
</table>
</div>
<% end function %>
Avatar billede nute Nybegynder
28. august 2001 - 14:38 #9
chameleon >> ahhh....nå ser jeg hva du prøver på. Du vil skrive ut alle dine records i en tabell, men du vil skrive dem ut i en tabell med 3 kolonner ? Stemmer dette ? Hvor det ser nesten sånn ut:

Record 1 | Record 2 | Record 3
Record 4 | Record 5 | Record 6
Record 7 | Record 8 | Record 9

/nute
Avatar billede oswald Nybegynder
28. august 2001 - 14:38 #10
Hvis det skal være smukt skal du skrive

<%if not objRec.EOF then%>
<TD ALIGN=LEFT  WIDTH=\"165\">
<b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
</TD>
<%objRec.movenext
else%>

<TD ALIGN=LEFT  WIDTH=\"165\">
&nbsp;</TD>

<%
end if   
%>
Avatar billede nute Nybegynder
28. august 2001 - 14:41 #11
chameleon >> hvis jeg har rett i mine antagelser i forrige innlegg, så kan du gjøre følgende:

<%
Function ShowSubCat
    CatId = Request.QueryString(\"CATID\")
    SQL = \"SELECT * From cat WHERE sub = \"&CatId
    SQL = SQL &\" Order by catname asc\"
    set objRec = objCon.Execute(SQL)
    %>
    <div align=\"left\">
    <table border=\"0\" width=\"500\" cellspacing=\"10\" cellpadding=\"0\">
    <tr>
    <%
    Dim counter = 1
    Do While NOT objRec.EOF
      if( counter = 3 ) then
          response.write(\"</tr><tr>\")
            counter = 1
        end if
        %>
        <TD ALIGN=LEFT  WIDTH=\"165\">
        <b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
        </TD>
        <%
        objRec.MoveNext
        counter = counter + 1
    loop
    %>
    </tr>
    </table>
    </div>
<%
end function
%>


/nute
Avatar billede oswald Nybegynder
28. august 2001 - 14:45 #12
nute:> din funktion vil afslutte med en <tr></tr> hvis der et 3,6,9... elementer i recordsettet.
Avatar billede nute Nybegynder
28. august 2001 - 14:54 #13
korrekt...loopen skal se sånn ut:

Do While NOT objRec.EOF
        %>
        <TD ALIGN=LEFT  WIDTH=\"165\">
        <b><a class=4 href=\"show.asp?CATID=<%=objRec(\"catid\")%>\"><%=objRec(\"catname\")%></a></b>
        </TD>
        <%
        objRec.MoveNext
        if( counter = 3 AND NOT objRec.EOF) then
          response.write(\"</tr><tr>\")
          counter = 1
        end if
        counter = counter + 1
    loop
    while( counter <= 3 )
      response.write(\"<td ALIGN=LEFT  WIDTH=\"\"165\"\">&nbsp;</td>\")
      counter = counter + 1
    wend
   
/nute
Avatar billede chameleon Nybegynder
28. august 2001 - 14:59 #14
Mit webhotel er desværre nede lige nu...vender tilbage i løbet af - forhåbentligt - få minutter - så prøver jeg lige forslagene af.

nute - du har ret i at jeg vil skrive ud i 3 tabeller som du illusterer.

Kommer straks
Avatar billede chameleon Nybegynder
28. august 2001 - 15:10 #15
nute - nu virker det igen...

jeg er lidt i tvivl om hvor jeg skal sætte den sidste loop ind?
Avatar billede nute Nybegynder
28. august 2001 - 15:11 #16
den siste loop jeg postet, skal du bare bytte ut med den loop du har skrevet selv...
Avatar billede chameleon Nybegynder
28. august 2001 - 15:14 #17
Jeg ved ikke helt om jeg misfortår.. skal jeg blot tilføje nutes sidste indlæg til det som jeg postede allerførst?


Kunne I evt. klippe det sammen - please
Avatar billede chameleon Nybegynder
28. august 2001 - 15:18 #18
Sorry  Oswald - jeg prøvede din version og den virkede med det samme...

Takker jer begge for tålmodigheden :-)

Jeg vælger derfor at dele pointene - selvom Oswald var først på banen. Beklager at jeg fokuserede på nutes indlæg.

Avatar billede oswald Nybegynder
28. august 2001 - 15:18 #19
Chameleon:> Jeg mener nu ikke nødvendigvis det er bedst med et Loop for at skrive de tre celler ud. Det er nemmere bare at skrive dem som du selv gjorde i starten.
Avatar billede oswald Nybegynder
28. august 2001 - 15:19 #20
Helt iorden. sådan er det når det går hurtigt. ;)
Avatar billede chameleon Nybegynder
28. august 2001 - 15:20 #21
Hvis I har forstand på ASPmail  kan I hjælpe mig med et stort dilemma som ingen andre har givet sig i kast med... - Jeg tænkte, at I er eksperter :-)

http://www.eksperten.dk/spm/102945

Det er et stort problem for mig at denne funktion ikke virker, da jeg skal i luften ASAP

På forhånd tak
Avatar billede nute Nybegynder
28. august 2001 - 15:21 #22
oswald >> det er kanskje enklere å skrive på den måten han først postet, men den er ganske grim...
Avatar billede oswald Nybegynder
28. august 2001 - 15:23 #23
nute:> Ja det er grimt. Men det virker, det er hurtigt og det er overskueligt. Det betyder nogen gange mere at det er smukt. :)

Smuk kode er for folk med for meget tid. ;)
Avatar billede nute Nybegynder
28. august 2001 - 15:25 #24
oswald >> at det virker: jo, at det er hurtig: jo, at det er uoverskuelig: *nei*. Det er ingen konvensjonell måte å kode på, så det vil jeg si meg sterkt uenig i.

Smuk kode er for folk som *kan* kode.

;-)
Avatar billede oswald Nybegynder
28. august 2001 - 15:35 #25
nute:> Jeg ville nok heller ikke skrive en sådan funktionalitet på den måde. Jeg ville sikkert skrive den som en stored procedure som udtrak noget xml som blev konverteret via noget XSLT. Men det ville ikke hjælpe chameleon. :)
Avatar billede nute Nybegynder
28. august 2001 - 15:42 #26
oswald >> vel, det kommer jo selvsagt an på sammenhengen. Det er jo ikke noe point i å benytte et format som gjerne er overflødig. XML er jo absolutt en løsning, men hvis man ikke har behov for syndikering av sitt innhold, så vil jeg si at det er litt overkill. Så kan man heller skrive litt XHTML.

:)
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