webForumDet fria alternativet

Decimaltal

8 svar · 344 visningar · startad av Havregryn

HavregrynMedlem sedan juni 200288 inlägg
#1

Hmm... sitter och pillar med MySQL-front, men förgäves.
Hur jag än gör så lyckas jag inte hitta någon typ som tar emot decimaltal. Jag vill att man skall få 0.20 poäng när man loggar in, men det fungerar inte. Har testat med double och float, men inget funkar... tacksam för hjälp.

MeleaMedlem sedan juli 20033 147 inlägg
#2

Har du prövat Varchar?

HavregrynMedlem sedan juni 200288 inlägg
#3

Jo, men Varchar är väl gentligen menat för textsnuttar?

MeleaMedlem sedan juli 20033 147 inlägg
#4

Jag är ingen specialist på MySQL Front men det borde funka med Varchar och vad spelar det för roll om det är gjort för textsnuttar? :)

@ndersMedlem sedan juni 200032 969 inlägg
#5

Argh!

Det spelar en jäkla roll! Tal äro tal och icke strängar. Varför tror du det finns olika datatyper, om man ändå ska ha allt i samma fälttyp?

Man skall lagra tal i talfält för att:
*) kunna sortera korrekt, annars kommer 10 före 2.
*) kunna räkna i SQL-frågan.

Taltyperna tar generellt också mindre lagringsutrymme.

- - - - - - - -

Havregryn, vad menar du med 'inte fungerar'? Du anger talet med decimalpunkt i SQL-frågorna?

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Typen decimal borde vara lämplig.

Flyttas från ASP.

HavregrynMedlem sedan juni 200288 inlägg
#7

Använder:

loginPoints = RecSet("loginPoints") + 0.20

när man loggar in.

Fel: När jag sedan kollar databasen med hjälp av MySQL-front så har det inte hänt någonting.
Jag har testat med double b la.

Med typen decimal får jag följande fel:

Körningsfel i Microsoft VBScript fel '800a000d' 

Inkompatibla typer 

sida.asp, rad 59

Känner mig rättså förvirrad.

@ndersMedlem sedan juni 200032 969 inlägg
#8

Om du ska räkna med med fältvärdena i ASP så måste du se till att subtypskonvertera så du använder samma datatyper. En sträng som innehåller "0.20" är inte samma sak som ett decimaltal med värdet 0.20. I ASP kan du kan använda CDbl() för att konvertera en variant till subtypen double, som är ett decimaltal.

Du måste visa mer kod också, om det ska gå att hjälpa till.

Mvh

HavregrynMedlem sedan juni 200288 inlägg
#9

Okej, jag skall visa mer kod. Följande lilla stycke använder jag när man loggar in:

' Lägger till poäng
Set RecSet = Connect.Execute("Select * from tblstatus where username = '"& Request.Form("username")&"'") 
If RecSet("loginDate") = date then
	' Ger inga poäng
Else
	dblLoginPoints = RecSet("loginPoints") + 0.2
	dtmLoginDate = date
	Connect.Execute("UPDATE tblstatus SET loginDate = '"& dtmLoginDate &"', loginPoints = '"& dblLoginPoints & "' where username = '"& Request.Form("username") &"'") 
End if

Och jag har som sagt testat en rad olika typer på dblLoginPoints, men inget verkar fungera. Vore glad om du kunde förklara lite mer utförligt!

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