Ir al contenido


Foto

Compatibilidad de aplicacion con windows a 64 bits


  • Por favor identifícate para responder
6 respuestas en este tema

#1 maurixio5540

maurixio5540

    Member

  • Miembros
  • PipPip
  • 31 mensajes
  • LocationColombia

Escrito 13 enero 2014 - 08:05

Buen dia.
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.


  • 0

#2 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 mensajes
  • LocationCali, Colombia

Escrito 13 enero 2014 - 09:16

Hola, en primer lugar debes tener en cuenta que los Dll de conexión son diferentes, así que debes agregar a la ruta o copiar los dll de conectividad con Oracle 64 bits, estos componentes se encuentran en la carpeta /redis/ del Delphi.

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

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.469 mensajes
  • LocationMéxico

Escrito 13 enero 2014 - 09:20

Windows 7 64 bits tiene el directorio sysWOW64 donde se copian DLL's de 32 bits para poder funcionar en 64 bits.

Desconozco que dll utilices para Oracle.

Saludos
  • 0

#4 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 mensajes
  • LocationCali, Colombia

Escrito 13 enero 2014 - 10:59

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

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.469 mensajes
  • LocationMéxico

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

#6 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 mensajes
  • LocationCali, Colombia

Escrito 13 enero 2014 - 03:45

Ha ok, creo que interpreté mal la pregunta.

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

#7 maurixio5540

maurixio5540

    Member

  • Miembros
  • PipPip
  • 31 mensajes
  • LocationColombia

Escrito 14 enero 2014 - 07:19

Gracias compañeros por sus respuestas.

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.

  • 0




IP.Board spam blocked by CleanTalk.