webForumDet fria alternativet

problem med att lägga till decimaler i databasen

ASP

11 svar · 290 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Jag har problem med att lägga till decimaler i databasen. Så här ser koden ut:

SQL = "SELECT * from members where username = '"&varArray(i)&"'"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

poang = CInt(RecSet("poang")) + 0.02

RecSet.Close

strSQL="UPDATE members SET poang = "& CInt(poang) &"  WHERE username = '"&varArray(i)&"' "
Connect.execute (strSQL)

Har även testat med utan CInt men funkar ändå inte. Kolumnen poang är tal med fältstorlek Decimal.

Medlem sedan dec. 200012 464 inlägg
#2
SQL = "SELECT * from members where username = '"&varArray(i)&"'"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

poang = cdbl(RecSet("poang")) + 0.02

RecSet.Close

strSQL="UPDATE members SET poang = "& replace(poang,",",".") &"  WHERE username = '"&varArray(i)&"' "
Connect.execute strSQL
Medlem sedan feb. 20011 498 inlägg
#3

Kan du förklara varför man ska göra så?

Medlem sedan maj 20018 027 inlägg
#4

CInt ger heltal, men du vill ha decimaltal, därför CDbl som ger Double.

replace för att byta decimalkomma mot decimalpunkt, vilket är vad som behövs i databasen.

Medlem sedan feb. 20011 498 inlägg
#5

Nu när jag testade koden så la den till 1 istället för 0.02

Medlem sedan maj 20018 027 inlägg
#6

Är kolumnen "poang" i databastabellen dimensionerad för decimaltal?

Medlem sedan dec. 200012 464 inlägg
#7

Det var ju könstigt, men det är väl bättre om du gör update direkt utan att hämta något värde

strSQL="UPDATE members SET poang = poang + 0.02 WHERE username = '"&varArray(i)&"' "
Connect.execute strSQL
Medlem sedan feb. 20011 498 inlägg
#8

Nu uppdateras den inte med 0.02 när jag skriver så här:

strSQL="UPDATE members SET poang = poang + 0.02 WHERE username = '"&varArray(i)&"' "
Connect.execute strSQL

Men om jag skriver så här:

strSQL="UPDATE members SET poang = poang + 5 WHERE username = '"&varArray(i)&"' "
Connect.execute strSQL

Så uppdateras det med 5.

Kolumnen poang ser ut så här:

Datatyp: Tal
Fältstorlek: Decimal
Format:
Precision: 18
Skala: 0
Decimaler: 2
Indatamask:
Titel:
Standardvärde: 0
Verifieringsuttryck:
Verifieringstext:
Obligatoriskt: Nej
Indexerat: Nej

Medlem sedan dec. 200012 464 inlägg
#9

Nu vet jag inte exakt vad Access menar med sina uttryck, men kan du testa och sätta skala till något som är skilt ifrån 0

Medlem sedan feb. 20011 498 inlägg
#10

Nu fungerar det. Skala betydde antalet siffror till höger om decimaltecknet

Medlem sedan maj 20018 027 inlägg
#11

Skala betydde antalet siffror till höger om decimaltecknet

Intressant! Vad betyder då Decimaler: 2?

Medlem sedan feb. 20011 498 inlägg
#12

Så här står det:

Antalet siffror till höger om decimalteckenet. Välj "Automatiskt" om du vill att antalet ska avgöras av formatet.

263 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)