webForumDet fria alternativet

Problem med kommatecken i flyttal i SQL Server

1 svar · 456 visningar · startad av d_jonsson

d_jonssonMedlem sedan mars 200113 inlägg
#1

I svenska är kommatecken det tecken som är decimalavgränsare, men SQL-server har en punkt som decimalavgränsare i flyttalssammanhang. Finns det någon inställning som gör att SQL Server betraktar inparametrar till Stored Procedures som flyttal, även om de innehåller kommatecken, och inte punkt som decimalavgränsare?

Det blir t ex fel om man skriver (ADO i Visual Basic)
Conn.Execute "spNumberAdd 192,12"
spNumberAdd tar här en inparameter i form av ett flyttal, men eftersom SQL-server inte gillar kommatecken i flyttal så går det åt skogen. Om man iställer skriver
Conn.Execute "spNumberAdd 192.12"
så går det galant. Nån som vet hur man kan skicka flyttal som argument till en lagrad procedur i sql-server, eller måste man själv byta ut kommat mot en punkt innan man lagrar värdet i databasen? När man hämtar värdet sen, behöver man ju inte konvertera det, eftersom det går genom windows och de nationella inställningarna, då blit ju en decimalpunkt som bekant ett komma om man har svenska inställt som språk.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

I SQL så måste du alltid använda . när du anger decimala värden eller flyttal. Det går inte att ändra på.

------------------
essentitia preter non sans multiplicandum

262 ms totalt · 3 externa anrop · v20260731065814-full.30151723
139 ms — hämta forumlista (db)
121 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)