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.
Decimaltal
8 svar · 344 visningar · startad av Havregryn
Har du prövat Varchar?
Jo, men Varchar är väl gentligen menat för textsnuttar?
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? :)
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?
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.
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
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!