Hvordan kan det være, at hvis jeg i nedenstående kodeudsnit andvender faste værdier i variablen i, så virker scriptet som det skal og tæller "i" antal pladser ned i recordsettet? Men når man bruger request.Querystring("id") som vist i koden og angiver et tal i HTTP Query'en, så virker det ikke, så får jeg en ADODB.Recordset error '800a0bcd' ang. at recordsettet er tomt. Scriptet fejler i den linie, hvor der står rs.movenext.
På forhånd tak. Thomas Hansen
...
sql = "SELECT * FROM tblKrigere ORDER BY lastname" set rs = Cn.Execute(sql) i = Request.Querystring("id") response.write (i)
count = 0 do while count < i rs.movenext count = count + 1 response.write (count) loop ...
Grunden er at Querystring altid returnere tekst, så hvis der står et tal, får du teksten "123" istedet for tallet 123. Løsningen er (som goose skriver) at typecaste værdin til Integer, hvis du skal bruge værdien til beregninger.
Umiddelbart synes jeg det lyder mærkeligt, da VBScript selv burde konvertere tal i strenge til tal hvis der var behov for det.
Rent bort set fra det, så er det en lidt "farlig" metode at navigere frem i et recordset på, da du ikke laver noget check for om der er flere elementer i recordsettet inden du kalder movenext. Du bør i det mindste lave en stopbetingelse i din while-løkke, som tager højde for eof, altså:
sql = "SELECT * FROM tblKrigere ORDER BY lastname" set rs = Cn.Execute(sql) i = Request.Querystring("id") response.write (i)
count = 0 do while (count < i) and not rs.eof rs.movenext count = count + 1 response.write (count) loop
Hvad skriver count i øvrigt for hvert gennemløb? Hvis den tæller count op som en numerisk værdi, så er request.querystring("id") blevet konverteret til en int og dermed er det ikke datatypen som er et problem...
Det er bare helt perfekt... og det virker. Havde godt luret at det var det der var problemet, men kunne ikke finde det der skulle til for at løse det...
Tak for din bekymring, men den måde man kommer ind til dette script gør, at dette stykke kode ikke kan komme til EOF
Thomas
Synes godt om
Ny brugerNybegynder
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.