
Compatibilidad de aplicacion con windows a 64 bits
#1
Escrito 13 enero 2014 - 08:05
Ayuda... Tengo una aplicacion con conexion a base Oracle 10g, utilizo los componentes dbexpress y todo funciona perfectamente en windows a 32 bits, pero cuando la quise correr en windows a 64 bits me aparece el siguiente error "SQL Error: Error mapping failed" por favor necesito su ayuda para poder resolver este incoveniente, he hecho varios tipos de pruebas y no funciona. Gracias.
#2
Escrito 13 enero 2014 - 09:16
en teoría no debería haber diferencia con los componentes de conexión a bases de datos, DbExpress es compatible en sus tipos de datos en las diferentes plataformas, si pudieras decirnos la estructura de la tabla y la consulta que estas ejecutando tendríamos más herramientas para detectar el posible error.
Saludos.
#3
Escrito 13 enero 2014 - 09:20
Desconozco que dll utilices para Oracle.
Saludos
#4
Escrito 13 enero 2014 - 10:59
lo recomendable es copiarlos al Windows/system o yo siempre al entregar la aplicación los copio en el mismo directorio del ejecutable.
igual se requiere instalar el cliente de Oracle y configurar el cliente adecuadamente en cada máquina donde se ejecute la aplicación (Si es una instalación Cliente/Servidor).
LibraryName=dbxora.dll //Cliente proporcionado por embarcadero para Windows
LibraryNameOsx=libsqlora.dylib //Driver proporcionado por Embarcadero para MAC
VendorLib=oci.dll //Driver para Win64 instalado por el cliente de Oracle de 64 bits
VendorLibWin64=oci.dll //Driver para Win64 instalado por el cliente de Oracle de 64 bits
VendorLibOsx=libociei.dylib //Driver para Mac
hay que asegurarse que todos los driver correspondientes sean para 32 o 64 bits, en este caso que el dbxora.dll sea el de 64 bits igualmente el oci.dll, si alguno de ellos no es de 64 bits, no funciona bien.
saludos.
#5
Escrito 13 enero 2014 - 01:22
Con dbexpress se utiliza el dbxora.dll que se encuentra en la carpeta /redist/win64/, ya no se copia en syswow64, porque en esa carpeta van los drivers de compatibilidad, o sea los drivers de 32 bits.
lo recomendable es copiarlos al Windows/system o yo siempre al entregar la aplicación los copio en el mismo directorio del ejecutable.
igual se requiere instalar el cliente de Oracle y configurar el cliente adecuadamente en cada máquina donde se ejecute la aplicación (Si es una instalación Cliente/Servidor).
LibraryName=dbxora.dll //Cliente proporcionado por embarcadero para Windows
LibraryNameOsx=libsqlora.dylib //Driver proporcionado por Embarcadero para MAC
VendorLib=oci.dll //Driver para Win64 instalado por el cliente de Oracle de 64 bits
VendorLibWin64=oci.dll //Driver para Win64 instalado por el cliente de Oracle de 64 bits
VendorLibOsx=libociei.dylib //Driver para Mac
hay que asegurarse que todos los driver correspondientes sean para 32 o 64 bits, en este caso que el dbxora.dll sea el de 64 bits igualmente el oci.dll, si alguno de ellos no es de 64 bits, no funciona bien.
saludos.
Bueno, asumiendo que la aplicación ya es una aplicación 64 bits, pero si sigue siendo 32 bits, que es lo que entendí, debe usar el directorio sysWOW64.

Saludos
#6
Escrito 13 enero 2014 - 03:45
Yo estoy hablando de compilar el programa en 64 bits, el texto dice " pero cuando la quise correr en windows a 64 bits me aparece el siguiente error", puede dar a doble interpretación.
Efectivamente si la aplicación es de 32 bits y se desea correr en una máquina con Windows 64 pero la aplicación sigue siendo a 32 bits, es en el syswow donde se debe copiar los drivers, en ese caso hay que asegurarse que el osi.dll que esté instalado sea de 32 bits, de lo contrario no funcionaría.
y en el caso que yo estaba comentando es de pasar la aplicación a 64 bits, en ese caso es necesario asegurarse que los drivers sean de 64 bits y lo recomendable es en el system donde van los drivers de 64 bits, o en mi caso los copio en la misma carpeta del ejecutable para evitar problemas.
Gracias Egostar por aclarar la confusión.
#7
Escrito 14 enero 2014 - 07:19
El proceso que realice fue el siguiente teniendo en cuenta sus sugerencias.
En primer lugar baje todos los archivos dll y el cliente Oracle a 32 bits, ruta cliente http://www.oracle.co...ft-098987.html.
Después realice la instalación del cliente, automáticamente realiza la configuración de la variable path y copie la libreria midas.dll y dbexpora.dll a la carpeta sysWOW64 y listo funciona la aplicación en Windows a 64 bits.