Avatar billede steffansteffan Nybegynder
15. februar 2006 - 17:16 Der er 9 kommentarer og
1 løsning

Type mismatch fejl ved count.

har bare denne her meget simple plus sammen funktion. Men for "Type mismatch" i sidste linje. Kan ik finde ud af hvorfor. Plz help.

<%
'Tæller antal venner sammen (udgående)
ID = objRs("id")
Sql1 = "Select count(*) as Found from bk_venner WHERE dig =" & ID
Set Record = objConn.Execute(Sql1)

'Tæller antal venner sammen (indgående)
Sql2 = "Select count(*) as Found2 from bk_venner WHERE ven =" & ID
Set Record2 = objConn.Execute(Sql2)

Ialt_venner_ud = Record("found")
Ialt_venner_ind = Record2("found2")

'Plusser sammen
Antal_venner = Ialt_venner_ud + Ialt_venner_ind
%>
Avatar billede softspot Forsker
15. februar 2006 - 17:24 #1
Prøv evt.:

Antal_venner = clng(Ialt_venner_ud) + clng(Ialt_venner_ind)
Avatar billede nielle Nybegynder
15. februar 2006 - 19:42 #2
... et alternativ:

Ialt_venner_ud = CInt(Record("found"))
Ialt_venner_ind = CInt(Record2("found2"))

Så behøver man ikke at caste hver gang at man skal bruge Ialt_venner_ud eller Ialt_venner_ind i et regnestykke.
Avatar billede steffansteffan Nybegynder
15. februar 2006 - 20:43 #3
Smæk et svar begge lige det jeg søgte takker, Kan en forklare hvad der sker. Har aldrig set en af de tag før.

Cint og CIng
Avatar billede softspot Forsker
15. februar 2006 - 20:46 #4
C for Convert, Int og Lng er for typerne Integer og Long.

Det der typisk sker er at variablernes subtyper bliver sat til string eller noget andet, som gør at en umiddelbar addition af værdierne ikke er mulig (selvom VBS burde lave implicit typekonvertering af strenge de kun indeholder tal).
Avatar billede softspot Forsker
15. februar 2006 - 20:50 #5
...vær i øvrigt opmærksom på at Long har et værsentlig større værdisæt end en integer, så jeg vil under alle omstændigheder anbefale dig at bruge CLng (da integers i databaser typisk svarer til longs i VBS).

Hvis du til hver en tid kan garantere at summen af det antal der findes, i de to forspørgsler, ikke bliver mere end 32767, kan du naturligvis godt bruge CInt ;-)

Men på den anden side, med dagens RAM-priser, hvorfor så lægge den begrænsning på sig selv :)
Avatar billede softspot Forsker
15. februar 2006 - 20:51 #6
Tak for point :)

...men skulle nielle ikke have haft point?
Avatar billede nielle Nybegynder
15. februar 2006 - 21:05 #7
Klare mig nok alligevel uden point på denne her :^)
Avatar billede softspot Forsker
15. februar 2006 - 21:14 #8
Jeg kan da godt lige smide nogle til dig hvis det er - du var jo trods alt blevet stillet nogle i udsigt :)
Avatar billede nielle Nybegynder
15. februar 2006 - 22:33 #9
Slet ikke nødvendigt - det var jo alligevel dig som klarede al forklaringen (forresten mente jeg at C stod for Cast, men Convert er lige så naturligt en mulighed).
Avatar billede softspot Forsker
15. februar 2006 - 23:23 #10
Jeg tror du har ret i at C står for cast, det er jo trods alt termen i de sprog der implementerer casting som en indbygget del af syntaksen...
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