Solución al problema con odbc pgsql (postgresql) en Windows 7 de 64 bits

Hace poco tuve que lidiar con la instalación de un driver ODBC para Postgresql desde Windows 7 (x64) la verdad es que normalmente no había tenido ningún problema para crear conexiones DSN, sin embargo por alguna extraña razón la versión "Home Basic" de este jodido sistema fue una piedrita en el zapato, como me dí cuenta de que es más común de lo que parece, decidí escribir este post a fin de compartir la solución con otros.

El problema
Según leí en la documentación en inglés, se deriva de que a "los genios de Microsoft" se les ocurrió dejar dos versiones del mismo programa encargado de generar los orígenes DSN ODBC (por aquello de las compatibilidades en el sistema) concretamente es un programa llamado "odbcad32.exe", hasta aquí tiene sentido y mi comentario sarcástico respecto al tema parece fuera de lugar (pero no uso el sarcasmo a la ligera), el problema es que la versión del programa de 32 bits esta alojada en la carpeta "C:\WINDOWS\SysWOW64", mientras que la versión de 64 bits de ese mismo programa esta alojada en la carpeta "C:\WINDOWS\System32", por lo que el sistema se hace pelotas con la versión y se presenta un fastidio; otra cosa que suele suceder precisamente por esto es que si ustedes buscan cualquier origen desde la ruta normal "Archivos de Programa/Herramientas administrativas/Orígenes de Datos ODBC" no se muestran aquellos que están disponibles en realidad, ni siquiera los de "Microsoft Accces".

La solución
  1. Ejecutar una terminal MS-DOS como administrador (Botón de Inicio/Todos los programas/Accesorios/Símbolo del sistema // Botón derecho/Ejecutar como administrador)
  2. Ejecutar desde ahí el instalador de la versión de 32 Bits de postgresql (CD Ruta_a_donde_esta_el_msi Enter psqlodbc.msi Enter).
  3. Ejecutar la versión de 32 bits del programa "odbcad32.exe" ( CD \WINDOWS\SysWOW64 Enter odbcad32.exe Enter)
  4. Configurar el DSN a nuestras necesidades (Nota: es importante distinguir el juego de caracteres que usa su servidor)
  5. Finalmente guardamos los cambios y listo, debería de estar funcionando.
Aún con problemas?
Cambiar a automático y arrancar el servicio (sólo como última medida):
  • Panel de Control/Herramientas Administrativas/Servicios/ Inicio de sesión secundario

SaluDoS!!

Comentarios

  1. Muchas gracias por el comentario, fue de mucha utilidad, tuve el mismo problema y la solucion funciono a la perfeccion

    ResponderEliminar
  2. Muchas gracias por tus comentarios, tuve el mismo problema y la solucion funciono a la perfeccion

    ResponderEliminar
  3. Muchas gracias, funciono todo.

    ResponderEliminar
  4. saludos, tengo un problema tengo una BD creada en Postgres para una aplicación hecha en Vb.net en una pc con windows 7 y hora he pasado la aplicación y la Bd a una pc con windows 8 e intentado crear el DSN para conectarlos y me sale un error al momento de crear y DSN, no lo puedo crear, a ver si me puedes ayudar. Gracias

    ResponderEliminar
  5. Saludos, una consulta no puedo crear un DSN para conectar una base de datos de postgres con vb.net en windows 8. gracias

    ResponderEliminar
    Respuestas
    1. Agrega más info por favor, que versión de SO es en donde se aloja la DB, 32 o 64, además desde donde intentas conectar, es local o esta fungiendo como servidor?, si es servidor, que versión de SO usan tus clientes, por último, que versión de Postgres tienes instalado, ya probaste acceder mediante PgAdmin??

      Eliminar
  6. Muchas gracias, me ha venido muy bien

    ResponderEliminar
  7. Hola, tengo un problema no puedo instalar PostgrestSQL tengo w7 Home Basic 64 Bits, descargo todo y al ejecutar se queda en blanco y sin ninguna opción, boton, etc. alguien podría darme una solución o a que se debe el inconveniente ?

    ResponderEliminar
  8. Hasta donde recuerdo, no existe un problema de compatibilidad por la versión de SO, por lo que el problema debe ser en tu equipo, prueba ejecutarlo como administrador, qué versión estás intentando instalar, la más reciente la encuentras aquí, podría ser el antivirus, algún problema con el registro, un problema con el exe, has probado instalarlo en modo a prueba de errores?
    Espero más información para ver si es posible ayudarte.

    ResponderEliminar
  9. Disculpa hermano, pero como quedaría si por ejemplo tenemos el instalador del postgrestsql y el de odbc en el escritorio? Gracias.

    ResponderEliminar
    Respuestas
    1. Mira normalmente...

      En XP y anteriores:

      cd C:\Documents and Settings\"TU USUARIO"\Desktop\

      a partir de Windows Vista

      cd C:\Users\"TU USUARIO"\Desktop

      y ya luego mandas a llamar el paquete...

      Ojo con esto hay ocasiones en las que el nombre de la carpeta "TU USUARIO" no corresponde al que aparece en el menú de inicio, esto se debe a que algunas veces la sesión era de alguien más y se le cambió el nombre, sin embargo la carpeta de archivos no cambia de nombre, para evitar esto te recomiendo dar click con el botón derecho del mouse en el paquete y en la parte de "Ubicación" puedes copiar la ruta de acceso, luego simplemente abres tu terminal, escribes cd y vuelves a oprimir botón derecho y seleccionas pegar...

      Eliminar
    2. Vale, muchas gracias.

      Eliminar
  10. Buenísimo. Muchas gracias. Me ahorraste un montón de trabajo.

    ResponderEliminar
  11. Maestro, me solucionaste un gran problema, no suelo hacer este tipo de conexiones, tuve este problema y me topé con tu post de milagro. Muchas, muchas gracias!!
    que andes bien saludos!!!

    ResponderEliminar

Publicar un comentario

Tu opinión es importante compartela...

Entradas populares de este blog

Detener la sincronización de tiempo/fechas entre Host y Guest en Virtual Box

Extraer datos de un archivo.mdb (Access) con python