Avatar billede neoman Novice
28. oktober 2010 - 12:01 Der er 8 kommentarer og
1 løsning

Dnaks/Engelsk opsætning - problem med SQL og tal

Jeg har engelsk XP og engelsk Access.

Jeg danner en SQLstring:

sqlString "INSERT INTO Tabel1 (Val1, Val2, Val3, Val4, Val5, Val6) VALUES (377226.130434783,369533.573905649,310000,103138.291666667,176928.800170068,1546201)"


Værdierne kommer fra nogle DOUBLE variable:

Val1=en masse beregninger
Val2=en masse bergeninger osv.

og danner SQl strengen ved "INSERT bla bla VALUES (" & Val1 & "," ...


og alt kører fint.

f.eks.

Val1=1.1
Val2=2.2
Val3=3.3 osv

"INSERT .... (1.1, 2.2, 3.3 ..."
Når jeg kører den på en dansk maskine så opfatter maskinen decimalseparatoren som skille tegn, og jeg får for mange værdier med.

sqlString bliver så til
"INSERT .... (1,1, 2,2, 3,3 ..."

Det er jo helt idiotisk problem, med helt sikkert en indlysende løsning - som er ...??? :-)

(Hvis jeg sætter den danske maskine til at køre med englesk decimalseparator så kører det hele fint).
Avatar billede neoman Novice
28. oktober 2010 - 12:12 #1
Hmm - Parameter Query synes at være en løsning. Er der andre ?
Avatar billede neoman Novice
28. oktober 2010 - 12:20 #2
Tak til Google:

UPDATE SomeTable SET SomeTable.DecimalField = Replace(Cstr(someValue),",",".")

:-)
Avatar billede Slettet bruger
30. oktober 2010 - 09:54 #3
definer: 'opfatter maskinen'
Avatar billede neoman Novice
30. oktober 2010 - 13:19 #4
Nemt: den tager et "," for at være et ",", selv om et "," i et tal som "1,1" (den danske udgave af "1.1") var ment som ET decimaltal og ej to heltal med et kome imellem.

Slem slem maskine - den kan ikke læse tanker! :-)
Avatar billede Slettet bruger
31. oktober 2010 - 09:17 #5
hvor i ms-access sker dette? sql udtryk anvendes flere steder:

* forespørgsler
* egenskabsark
* vba (currentdb.execute,ado,dao)
Avatar billede neoman Novice
31. oktober 2010 - 09:38 #6
... og JEG danner (i koden) SQl strengen ved "INSERT bla bla VALUES (" & Val1 & "," ...

Her har vi jo en konvertering af Val1 fra DOUBLE til STRING, og decimalseparatoren "," dukker op i tekststrengen.

Var det dét du spurgte om? Ellers forstår jeg ikke spørgsmålet.
Avatar billede Slettet bruger
31. oktober 2010 - 15:42 #7
Vil blot påpege at databasens sql læsning der er sprogafhængigt - det er derimod de implicitte konvertering fra double eller float til streng i udtrykket i #6.
Avatar billede Slettet bruger
31. oktober 2010 - 16:08 #8
RETELSE af #7 - der skulle stå:

'Vil blot påpege at databasens sql læsning er sprogUafhængigt - det er derimod de implicitte konvertering fra double eller float til streng i udtrykket i #6 IKKE'

.. og - det med 'maskinen gør' er sikkert rimeligt præcist på det et pensionist kursus i edb, men i dette forum, der, i sin lidenhed, det ypperste indenfor access mm., på dansk, kunne man præcisere.
Avatar billede neoman Novice
31. oktober 2010 - 19:47 #9
For at citere en dansk politiker: Coitus Muscarum
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester