/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Fejl ved flere DO løkker?
Fra : Anders Kirkeby


Dato : 09-01-03 08:36

Hey
Jeg vil gerne lave et database udtræk, hvilket virker fint nok.
Dette udtræk sættes ind i en Select box, med en Do-løkke omkring,
så den tager alle poster i DB´en med. Alt dette virker.

Mit problem er nu at jeg skal bruge det samme stykke kode mange
gang, og derfor lige så godt (håber jeg da) kan lægge en lykke
omkring. Men når Do løkken til Select bliver vist anden gang er
den tom, og der sker ikke mere. Kan I svare mig på hvorfor?

Det virker som om "den" ikke vil godtage flere DO løkker i samme
dokument. Det kan da ikke være rigtigt. Er det så min kode der er
noget galt med? Har også prøvet bare at kopiere DO løkken, for at
se om det var den omliggende løkke der ikke virkede - var det
heller ikke. Nu er jeg tør for ideer :(

--- Min kode ser sådan ud: ---

strSQL = "Select * from Brugere"
set sr = Conn.Execute(strSQL)

Response.Write "<table>"
Dim nr

for nr = 1 to 5
Response.Write "<tr><td>Spiller #" & nr & "</td>"
Response.Write "<td><select name='p" & nr & "'>"
Response.Write "<option value=''>--- Spiller ---</option>"
   do
   Response.Write "<option value='" & sr("User") & "'>" &
sr("User") & "</option>"
   sr.MoveNext
   loop while not sr.EOF
Response.Write "</select></td></tr>"
next

PS: Ja, jeg har nogle lange linjer kode :)

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Peter Lykkegaard (09-01-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 09-01-03 12:29

Som svar på skriblerier nedfældet af Anders Kirkeby :

> do
> Response.Write "<option value='" & sr("User") & "'>" &
> sr("User") & "</option>"
> sr.MoveNext
> loop while not sr.EOF

Der mangler en sr.movefirst
Umiddelbart burde du få en fejl på sr("User") i løkke nr 2

> Response.Write "</select></td></tr>"
> next

Før du retter så prøv at vælge View/Source i din browser
Evt kan du se om du får en fejl?

mvh/Peter Lykkegaard



Anders Kirkeby (09-01-2003)
Kommentar
Fra : Anders Kirkeby


Dato : 09-01-03 17:52

Det var lige hvad der skulle til :) Manglede sr.MoveFirst.
1000 tak for hjælpen

- Anders

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (11-01-2003)
Kommentar
Fra : Jørn Andersen


Dato : 11-01-03 02:08

On Thu, 9 Jan 2003 16:52:15 +0000 (UTC), Anders Kirkeby
<anderzkirkeby@hotmail.com> wrote:

>Det var lige hvad der skulle til :) Manglede sr.MoveFirst.
>1000 tak for hjælpen

Men man kan måske diskutere, hvor hensigtsmæssig koden i virkeligheden
er: Du laver det samme udtræk flere gange.

I stedet for:

>strSQL = "Select * from Brugere"
>set sr = Conn.Execute(strSQL)
>
>Response.Write "<table>"
>Dim nr
>
>for nr = 1 to 5
>Response.Write "<tr><td>Spiller #" & nr & "</td>"
>Response.Write "<td><select name='p" & nr & "'>"
>Response.Write "<option value=''>--- Spiller ---</option>"
>   do
>   Response.Write "<option value='" & sr("User") & "'>" &
>sr("User") & "</option>"
>   sr.MoveNext
>   loop while not sr.EOF
>Response.Write "</select></td></tr>"
>next

Ville jeg foreslå:
>strSQL = "Select * from Brugere"
>set sr = Conn.Execute(strSQL)

do
strOption = "<option value='" & sr("User") & "'>" & _
sr("User") & "</option>" & vbcrlf
   sr.MoveNext
loop while not sr.EOF
sr.Close
Set sr = Nothing
' Evt. også luk og sluk for db-forbindelse

>Response.Write "<table>"
>Dim nr
>
>for nr = 1 to 5
>Response.Write "<tr><td>Spiller #" & nr & "</td>"
>Response.Write "<td><select name='p" & nr & "'>"
>Response.Write "<option value=''>--- Spiller ---</option>"

Response.Write strOption

>Response.Write "</select></td></tr>"
>next


Fordelen er dels, at du kun laver udtrækket én gang, dels at du kan
lukke recordset/databaseforbindelse langt hurtigere.

--
Jørn Andersen,
Brønshøj

Peter Lykkegaard (11-01-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 11-01-03 13:02

Som svar på skriblerier forfattet af Jørn Andersen

> On Thu, 9 Jan 2003 16:52:15 +0000 (UTC), Anders Kirkeby
> <anderzkirkeby@hotmail.com> wrote:
>
>> Det var lige hvad der skulle til :) Manglede sr.MoveFirst.
>> 1000 tak for hjælpen
>
> Men man kan måske diskutere, hvor hensigtsmæssig koden i virkeligheden
> er: Du laver det samme udtræk flere gange.
>
Øhh, Anders henter da kun sit recordset én gang?
Bortset fra det har du da ret mht at placere recordsettet (options) i en
string variable

mvh/Peter Lykkegaard



Jørn Andersen (11-01-2003)
Kommentar
Fra : Jørn Andersen


Dato : 11-01-03 15:50

On Sat, 11 Jan 2003 13:01:56 +0100, "Peter Lykkegaard"
<polonline@hotmail.com> wrote:

>Som svar på skriblerier forfattet af Jørn Andersen
<snip>
>> Men man kan måske diskutere, hvor hensigtsmæssig koden i virkeligheden
>> er: Du laver det samme udtræk flere gange.
>>
>Øhh, Anders henter da kun sit recordset én gang?

Det har du ret i - min fejl.
Men han holder recordsettet "i live" i (unødvendigt) lang tid.

>Bortset fra det har du da ret mht at placere recordsettet (options) i en
>string variable

Eller i det mindste blot at trække sr("user") ud i en variabel.

Mvh.
--
Jørn Andersen,
Brønshøj

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste