har ett formulär med ett textfält där man fyller i ett tal, typ 12,5
sen kör jag en function som kollar så att det alltid är en decimal.
grejjen är sen när jag ska inserta till databasen, då är 12,5 en string.
går det att konvertera till ex. Cint, Clng, men fortfarande behålla decimalen?
eller ska jag byta format på kolumnen i databasen istället?
Varför ska du konvertera? Du bygger väl upp SQL-frågan som en sträng, då är det helt onödigt att se till att delar av strängen byggs upp av saker av typen double (som är en decimaltalstyp).
Däremot så får du se till att du använder decimalpunkt i stället för decimalkomma, eftersom man i SQL-frågor använder kommatecken för att separera fält eller värden.
vad lär jag ha för datatyp på fältet i databasen, ska inte numeric funka med decimal?
(kan nämnas att jag på andra sidor använder SUM för att sumera detta fält)
är jag helt vilse i pannkakan, eller!!!
regtime = checkform_decimal(request.form("regtime"))
if errors = 0 then
strsql = "insert into hours (regtime) values (" & regtime & ") "
call mySql
end if
function checkform_decimal(strtext)
strtext = Replace(strtext, ".",",")
strvalue = isNumeric(strtext)
if strvalue = False then
errors = errors & 4
else
strtext = FormatNumber(strtext,1,-1)
end if
checkform_decimal = strtext
end function
byter punkt till komma gör jag bara för att på svenska (lcid) vill formatnumber ha det, och formatnumber använder jag för att om man skriver .5 så byter den till 0.5.
jag testade att köra inserten utan funktionen med värdet 12.5 men den lilla stackars sql-servern tar bort min decimal och lägger in bara 12, varför?
datatypen för regtime är numeric för att jag ska kunna sumera fältet på andra sidor.
visst är det väl numeric jag bör använda?
(jag vet: funktionen byter till komma så jag får byta tillbaka till punkt innan inserten)
I SQL Server borde det finnas Float eller liknande, i Access ska du se till att ditt numeriska fält har egenskapen Double. Standardinställning där är nog Long (långt heltal), men det är just heltal, och då är det inte konstigt att decimalerna ramlar bort när du gjort din insert.
oki, I´m on! :bire
ändrade till float och nu funkar det, jobbigt bara att i inserten lär det vara punkt och kollar man i sql-servern så är det komma.
är det beroende på vilket default språk man väljer för databasen?
265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e