Har ett jobbigt problem som jag hoppas någon kan hjälpa mig med. Vill lägga till decimaltal (valuta) i en accesdatabas (svensk). SQLen ser ut såhär: prova att byta ut , mot . Jo har testat det och det funkar bra på den eng servens (som är utvecklingsserver lokalt) men det blir ju problem sen när jag lägger upp sidan på webhotellet som har svensk server. > Undrar om man kan ändra de lokala inställningarna på servern på Borde inte sql-satsen se ut så här: Formatera decimaltalet med punkt som decimal avgränsare och utan att omge den av enkla eller dubla citat tecken. Detta borde fungera oavsett lokal inställning eller operativ: Jo men dessa är redan istälda efter svenskt format, så antar att det är iisen som ställer till det? det blir nästan rätt nu... amen åh! ta bort kommat så klart!Problem med decimaltal i SQL från asp-sida!
--------------------------------------------------------------------------------
INSERT INTO tabellen (totalt) values('208,00')
--------------------------------------------------------------------------------
Kör jag den från asp sidan så lägger den till ,00 så värder i db blir 20 800,00 istället för 208,00. Kör jag däremot samma sql i acces så blir det rätt. Har upptäckt att det blir rätt om jag gör om decimaltalet till am standard (byter ',' mot '.') i SQLen på asp sidan. Beror nog på att servern är eng. Nu är problemet att webbhotellet har svensk server så då blir det fel när jag lägger upp det där.
Finns det något sätt som jag kan tala om för servern att 'den ska vara svensk', så jag kan använda mig av en 'svensk valuta' i sqlen? Användre mig av LCID men det hjälper inte i detta fallet.Sv: Problem med decimaltal i SQL från asp-sida!
brukar funka bättre ..
det har med lokala inställningar att göra. i usa är , tusen avgränsare medans . är för decimaler ... här i sverige är det lite annorlunda .. Sv: Problem med decimaltal i SQL från asp-sida!
Gör ett flertal sqlsatser som innehåller decimaltal och vill slippa sitta och göra olika versioner av dessa. Vill ju kunna testa 'svenskt' så att säga innan jag lägger upp sidorna.
Undrar om man kan ändra de lokala inställningarna på servern på något sätt?Sv: Problem med decimaltal i SQL från asp-sida!
> något sätt?
Är det en Windowsburk vi snackar om? I så fall borde det väl vara nationella inställningar på Kontrollpanelen.Sv: Problem med decimaltal i SQL från asp-sida!
INSERT INTO tabellen (totalt) values(208,00) ??
Eller lagra det i en variabel, och skriv:
sql = "INSERT INTO tabellen (totalt) values(" & variabelnamn & ")"Sv: Problem med decimaltal i SQL från asp-sida!
INSERT INTO tabellen (totalt) values(208.00)
Följande funktion kan vara bra för detta:
Function SQLNumber(Value)
SQLNumber = Replace(CStr(Value),Format$(0,"."),".")
End Function
'P.S.
' Format$(0,".") - Plockar ut decimal separator
' CStr(Value) - Omvadlar talet till text
' Replace(CStr(Value),Format$(0,"."),".") - Ersätter decimalseparatorn med .
'D.S
Om man vill optimera den lite kan man skriva om den till:
Function SQLNumber(Value)
Dim DecSep
DecSep = Format$(0,".")
If DecSep = "." Then
SQLNumber = CStr(Value)
Else
SQLNumber = Replace(CStr(Value),DecSep,".")
End If
End Function
Men jag tycker det är onödig för en försumbar optimering.
Om det inte är så att den används i någon stor loop.Sv: Problem med decimaltal i SQL från asp-sida!
Sv: Problem med decimaltal i SQL från asp-sida!
Om jag skickar med värderna utan 'fnuttar' runt talet.
ex: INSERT INTO tabellen (totalt) values(208.00)
så blir det rätt i databasen påde om jag kör det på den eng och svenska serven.
Ett problem kvarstår dock nämligen tusental, dvs värden över 1000 skrivs ju 3,263.40 och det gillar den inte eftersom ett komma för den är en avgränsare så den tror att det är två tal som skickas in dvs 3 och 264.40 och så e ju inte fallet...
ex: INSERT INTO testTabellen (totalt,totalt2,totalt3,totalt4) values(208.00, 49.00, 9.80, 3,263.40 )
Något förslag på hur jag kan lösa detta så att det blir rätt både på den svenska och engelska servern?Sv: Problem med decimaltal i SQL från asp-sida!
Nu blir det rätt! :-D