locked
Oracle ADI and the decimal / thousand separator RRS feed

  • 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
    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

    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

    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