Avatar billede timmwillum Nybegynder
01. november 2008 - 12:29 Der er 10 kommentarer og
1 løsning

Problemer med at dividere

Hej eksperter

Har et problem med en variabel, som giver fejl ved beregninger.

Jeg skal lave paging og vil gerne have et link "1 2 3" osv for hver side, så brugeren kan klikke sig direkte til fx side 5 frem for at skal klikke sig igennem alle sider.

Jeg henter først antal poster i min tabel sådan:

    'først tæller vi antal poster - til brug for paging links
    Set RS = Server.CreateObject("ADODB.RecordSet")
    Sql = "SELECT COUNT(*) AS antalposter FROM tblVarer"
    RS.CursorType = 2
    RS.LockType = 3
    RS.Open Sql, cString
   
        antalposter = rs("antalposter")

    RS.Close
    Set RS = Nothing

Derefter henter jeg posterne ind i en rs, men når jeg så vil dividere antalposter med det sideantal jeg har (pageLimit) giver den fejl. Jeg har fundet ud af at det er antalposter, der er problemer med, da jeg heller ikke kan fx "2/antalposter".

Et par udskrifter til skærm. Disse giver ikke fejl:

    response.write "<br>pageLimit: " & pageLimit  'skriver 2
    response.write "<br>antalposter: " & antalposter  'skriver 7
    response.write "<br>5/pageLimit: " & 5/pageLimit ' skriver 2.5

Og disse giver så alle sammen fejl:

    response.write "<br>antalposter/2: " & antalposter/2
    response.write "<br>2/antalposter: " & 2/antalposter
    response.write "<br>antalposter/pageLimit: " & int(antalposter) / int(pageLimit)
    response.write "round(antalposter/pageLimit,0): " & round(antalposter/pageLimit,0)

Hvad gør jeg galt. Det ser ud som om, jeg slet ikke kan beregne med værdien i antalposter. Men så tænkte jeg, at jeg kunne konvertere den med int ... det virker heller ikke. Nogen gode forslag?
Avatar billede Slettet bruger
01. november 2008 - 14:11 #1
Husk at angive feltet til integer i databasen. Kan det være problemet?

Hvordan har du forsøgt at konvertere til int?


  // Steeven
Avatar billede timmwillum Nybegynder
01. november 2008 - 14:58 #2
Feltet er ikke fra db. Det er en count(*) fra min sql sætning. Jeg ved ikke om det er det, der giver problemet. Men man skulle tro, at en count automatisk var integer.

Jeg har forsøgt at konvertere den ved at bruge int(antalposter).
Avatar billede erikjacobsen Ekspert
01. november 2008 - 15:05 #3
Jeg vil gerne forære dig et par parenteser:

    response.write "<br>antalposter/2: " & (antalposter/2)
Avatar billede timmwillum Nybegynder
01. november 2008 - 15:09 #4
Tak ... men det havde jeg faktisk tænkt på ... det giver samme fejl.

  Microsoft VBScript runtime error '800a000d'

  Type mismatch

  /admin/varer-vis.asp, line 131
Avatar billede erikjacobsen Ekspert
01. november 2008 - 15:11 #5
Nåh, du får en konkret fejl. Man kan ikke bruge "Og disse giver så alle sammen fejl:" til ret meget uden at se fejlen. Linie 131 er hvilken linie?
Avatar billede Slettet bruger
01. november 2008 - 15:15 #6
Undskyld, jeg skulle tage at læse spørgsmålet ordentligt

  // Steeven
Avatar billede timmwillum Nybegynder
01. november 2008 - 15:18 #7
Linje 131:
response.write "<br>antalposter/2: " & (antalposter/2)
Avatar billede erikjacobsen Ekspert
01. november 2008 - 15:51 #8
Godt. Du skal selvfølgelig lave det et heltal, hvis du ikke allerede har gjort det. Det kan ske med:

  antalposter = cint(rs("antalposter"))

(Sikkert også med clng)
Avatar billede timmwillum Nybegynder
02. november 2008 - 11:53 #9
Erik ... endnu en gang er du min redningsmand.

Beklager i øvrigt, at jeg "forsvandt" i går. Måtte hurtigt ud af døren til et arrangement.

cint virker ... men kan du forklare, hvorfor int ikke er godt nok. Hvad er forskellen?

Hvis det var alle andre, ville jeg bede vedkommende om et svar, så han/hun kunne få point ... men nu ved jeg jo efterhånden, at du ikke samler point ;-)
Avatar billede erikjacobsen Ekspert
02. november 2008 - 13:14 #10
Nemlig. int er ikke en funktion der kan konvertere noget: http://www.w3schools.com/Vbscript/func_int.asp
Det er kun hvis det allerede er en int. En CInt kan derimod konvertere fra en variant-type til int.

Og læg mærke til at vi (jeg...) li'som bare skulle have alle oplysninger.
Avatar billede timmwillum Nybegynder
03. november 2008 - 11:40 #11
tak igen ...
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