Answered by:
Oracle ADI and the decimal / thousand separator

Question
-
Hello all,
I have sequenced Oracle ADI 7.2.12.04.25. The application works perfect. Only the upload from ADI to the Oracle backend fails because of the wrong decimal separators.What I have done:
I have sequenced the above mentioned application. Also I added the following registry information:Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Control Panel\International] "sDecimal"="." "sThousand"="," "sMonDecimalSep"="." "sMonThousandSep"=","
Windows Registry Editor Version 5.00 [HKEY_USERS\.DEFAULT\Control Panel\International] "sDecimal"="." "sThousand"="," "sMonDecimalSep"="." "sMonThousandSep"=","
The problem
Within the bubble the correct decimal separators are not shown. However: if I open regedit in the virtual environment and go to the hives, the correct (?) registry information is shown. But if I run this vb-code in the virtual environment:
Const HKEY_CURRENT_USER = &H80000001 Const HKEY_LOCAL_MACHINE = &H80000002 Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") strKeyPath = "Control Panel\International" strValueName = "sDecimal" objReg.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,sDecimal strValueName = "sThousand" objReg.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,sThousand strValueName = "sMonDecimalSep" objReg.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,sMonDecimalSep strValueName = "sMonThousandSep" objReg.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,sMonThousandSep strOutput = "Decimal separators from the registry" & vbcrlf & vbcrlf strOutput = strOutput & "Number decimal separator: " & sDecimal & vbcrlf strOutput = strOutput & "Number thousand separator: " & sThousand & vbcrlf strOutput = strOutput & "Currency decimal separator: " & sMonDecimalSep & vbcrlf strOutput = strOutput & "Currency thousand separator: " & sMonThousandSep & vbcrlf msgbox strOutput,0,"Decimal separators from the registry."
The wrong decimal separators are shown.
Work around
I found one work-around (which is not an option): If I change the decimal separator via the Control Panel -> Regional and Languange options then the correct separators are shown. For me it is not an option as it is valid then for the whole machine and not only the virtual environment.
Question
What do I have to do to get the correct decimal separators within the virtual environment?
Decimal separator -> dot
Thousand separator -> comma
Currency decimal separator -> dot
Currenty thousand separator -> comma
With kind regards,
WillemJan- Edited by WillemPiloot Tuesday, April 24, 2012 7:50 PM
Tuesday, April 24, 2012 7:49 PM
Answers
-
Hello,
You can not virtualize the Regional Options. The registry keys are not read directly by the application, but instead by Windows (which can not access the virtual environment). Your only option is your workaround.Nicke Källén | The Knack| Twitter: @Znackattack
- Proposed as answer by Aaron.ParkerModerator Tuesday, April 24, 2012 8:03 PM
- Marked as answer by WillemPiloot Tuesday, April 24, 2012 8:38 PM
Tuesday, April 24, 2012 7:58 PM
All replies
-
Hello,
You can not virtualize the Regional Options. The registry keys are not read directly by the application, but instead by Windows (which can not access the virtual environment). Your only option is your workaround.Nicke Källén | The Knack| Twitter: @Znackattack
- Proposed as answer by Aaron.ParkerModerator Tuesday, April 24, 2012 8:03 PM
- Marked as answer by WillemPiloot Tuesday, April 24, 2012 8:38 PM
Tuesday, April 24, 2012 7:58 PM -
Hello Nicke,
Thanks for your reply. I will have a look how to solve this one. There is something in my mind.
With kind regards,
Willem-Jan
Tuesday, April 24, 2012 8:38 PM