Oracle-odbc-visual basic

Tenemos una aplicación que conecta con bases de datos Oracle a través de ODBC de Microsoft para Oracle.
Si en el registro de Windows en \SOFTWARE\ORACLE..... Ponemos la línea NLS_LANG=AMERICAN_AMERICA..... El programa funciona correctamente.
Si dejamos NLF_LANG=SPANISH_SPAIN nos da errores al grabar registros cuyos importes tienen decimales.
El problema es que un cliente se niega a cambiar este valor porque otras aplicaciones dejarían de funcionarle.
¿Existe algún remedio que no sea cambiar el registro de Windows?.

1 Respuesta

Respuesta
1
Yo creo que la mejor solución es instalarle un cliente Oracle (si tiene uno, le instalas otro) y le cambias ese valor en el registro en el oracle home del segundo, usando el ODBC de este para tu aplicación y el original para las otras.
El registro tiene una apariencia como esta:
Oracle
Home0
Home1
Lo cambias en el nuevo y listo.
Otra opción es cambiarla a nivel de software, e es decir, cuando arranque la aplicación manualmente le puedes cambiar los valores de la sesión, de la forma
alter session set nls_lang=american_america. Esto es a nivel de sesión, si desconectas debes volver a ponerlo. Esto funciona bastante bien, el mismo
modelo lo usan los desarrolladores de mi empresa (es decir visual-oracle-odbc) y esta solución es la que más usan.
Una duda, ¿el "alter session" se puede usar en una conexión DAO?. De otra forma, si yo tengo una Base de Datos Access vinculada por ODBC contra la BD Oracle, y me da el error que he comentado al hacer un insert (consulta SQL) ¿Cómo puedo solucionarlo por software?.
Perdona por tardar.
Con Dao si se puede usar el alter session. En access, ni idea. Lo que yo te recomiendo es probar lo del segundo cliente con Oracle. Lo instalas, creas un odbc que se llame dbname_access, le pones el nlslang y usas ese para esta aplicación. Esto casi seguro que funciona. Si te lías comentame (o si no terminas de entenderlo).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas