webForumDet fria alternativet

variabel1 + RecSet("Variabel2") = problem

23 svar · 335 visningar · startad av koltrasten

koltrastenMedlem sedan okt. 2002272 inlägg
#1
variabel1 = 0
' Här hämtar jag från en mySQL-databas
Summan = variabel1 + RecSet("Variabel2")

Detta ger felet Inkompatibla typer på den sistnämnda raden. Varför?
RecSet("variabel2") innehåller 4 och variabel1 innehåller 0. Varför går inte det?

Tacksam för snabb hjälp!!

EitrazMedlem sedan sep. 2002366 inlägg
#2

är RecSet("Variabel2") ett nummer?

IsNumeric(RecSet("Variabel2") kan du använda för o ta reda på det.

-Eitraz

koltrastenMedlem sedan okt. 2002272 inlägg
#3

Nej, IsNumeric(RecSet("Variabel2")) var false

Varför? Är det fel datatyp i mySQL-databasen? Datatypen är decimal(10,0). Vilken skall jag annars använda? (vill lagra tal, med decimaler).

Eller är det fel på ASP-koden?

Svara så snabbt ni kan! Tack!! :bire

EitrazMedlem sedan sep. 2002366 inlägg
#4

kan vara så att du måste ha en punkt istället för ett komma i 10,0 ..

-Eitraz

koltrastenMedlem sedan okt. 2002272 inlägg
#5

Den, då blir det fel i mySQL-programmet... (SQL syntax error)

Om jag skriver

%><%=RecSet("Variabel2")%><%

så visar den innehåller 4

Inga andra förslag? Skulle inte 4 vara en siffra, eller?

EitrazMedlem sedan sep. 2002366 inlägg
#6

If NOT IsNumeric(RecSet("Variabel2")) Then
Variabel2 = 0
Else
Variabel2 = CInt(RecSet("Variabel2"))
End If

Så blir Variabel2 en siffra.. helt säkert..

-Eitraz

koltrastenMedlem sedan okt. 2002272 inlägg
#7

Nu funkar det visst! Men, varför blir det så. Vilken datatyp skall jag använda till sådana tal?

Tack Eitraz :bire

EitrazMedlem sedan sep. 2002366 inlägg
#8

Om det inte är en integer du har kan du ju skriva CLng för lite större tal etc.

-Eitraz

koltrastenMedlem sedan okt. 2002272 inlägg
#9

Klarar CLng av decimaler också?

EitrazMedlem sedan sep. 2002366 inlägg
#10

yes, det gör det.

Funkar även med CDbl, beror på hur stora tal du använder.

-Eitraz

koltrastenMedlem sedan okt. 2002272 inlägg
#11

Typ, mellan 0 och 5000

EitrazMedlem sedan sep. 2002366 inlägg
#12

Hmm... Vet inte exakta storlekar på det där.. Men t ex

tal = "5435.234234234234234234"
talet = CDbl(tal)
talet = CLng(tal) <= Ger Owerflow

Dbl klarar alltså jobbigare tal ;)

-Eitraz

koltrastenMedlem sedan okt. 2002272 inlägg
#13

Varken CDbl eller CLng hittade jag som datatyp i mySQL :o

EitrazMedlem sedan sep. 2002366 inlägg
#14

Aha, du menar där i :)

DOUBLE kanske?

-Eitraz

koltrastenMedlem sedan okt. 2002272 inlägg
#15

hehe ;)
Klarar DOUBLE av decimaler? :)

EitrazMedlem sedan sep. 2002366 inlägg
#16

jepp, annars skulle inte CDbl ge decimaler... (Dbl = Double) ;)

-Eitraz

koltrastenMedlem sedan okt. 2002272 inlägg
#17

Skall det vara Double(10,0) då?

Tack för hjälpen, Eitraz - du är en ängel! :f

EitrazMedlem sedan sep. 2002366 inlägg
#18

Alltså... Datafältet i databasen är av typen Double (om du kör med MySQL) och när du i koden ska "konvertera" till Double skriver du CDbl(10.0) för att få 10.0.. om det var det du menade ;)

-Eitraz

koltrastenMedlem sedan okt. 2002272 inlägg
#19

Jag tänkte på 10,0 - om de betyder något särskilt!

EitrazMedlem sedan sep. 2002366 inlägg
#20

10,0 betyder inte nåt särskilt för mig.. hänger inte redigt med på vad du menar du ;)

-Eitraz

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)