Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Acceso a ODBC de 64 bits x64 con Visual C# .Net 2010
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Acceso a ODBC de 64 bits x64 con Visual C# .Net 2010

Publicar nuevo tema Responder al tema
Foros de discusión » VB.Net, C# .Net, Visual Studio .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Acceso a ODBC de 64 bits x64 con Visual C# .Net 2010 Responder citando

En el post:

http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&t=1528

Me funciona perfectamente el acceso a PostgreSQL desde Microsoft Windows 7 x32 en equipos con 32 bits usando un origen de datos ODBC creado en el equipo pero he comprobado que no me funciona en equipos con Windows 7 de 64 bits, en estos equipos me falla el código:

Código:

  conexionBDODBC = new OdbcConnection("dsn=bdfacturacion" +
      ";UID=facturacion;PWD=contraseña;"); 


Me da el siguiente error:

---------------------------
Error facturación
---------------------------
Error de base de datos:

System.Data.Odbc.OdbcException

ERROR [IM002] [Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado
---------------------------
Aceptar
---------------------------


He verificado varias veces en "Herramientas administrivas" - "Orígenes de datos ODBC" - "DSN de sistema" y el driver "bdfacturacion" existe.

Para más datos uso:

Microsoft Windows Server x64
El driver ODBC que he instalado es "PostgreSQL ANSI(x64)" (de 64 bits)
El motor de base de datos lo tengo en un Linux Ubuntu Server x64 y también he instalado PostgreSQL x64.

Todo es de 64 bits pero como digo no funciona la conexión ODBC.

Como lenguaje de programación uso Microsoft Visual Studio .Net 2010 y Visual C# .Net.
MensajePublicado:
Sab Jul 07, 2012 7:40 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Acceso a ODBC de 64 bits x64 con Visual C# .Net 2010 Responder citando



Anuncios



El error que nos comentas al intentar usar ODBC de 64 bits en un equipo de 64 bits con Visual C# de Visual Studio .Net 2010 es debido a que, por defecto, las aplicaciones de Visual Studio .Net se compilan en x32.

Para solucionar este problema tienes dos opciones, te las indicamos con las ventajas y los inconvenientes:

1. Puedes usar ODBCs de 64 bits en equipos de 64 bits y generar el ejecutable de tu aplicación Visual C# tambén en 64 bits. El único inconveniente de hacerlo así es que el ejecutable de tu aplicación no funcionará en sistemas de 32 bits sólo en sistemas de 64 bits. Sin duda esta opción es la más eficiente pues usarás todas las características de los 64 bit en tu aplicación y en el driver ODBC también de 64 bits, por lo que la conexión a la base de datos será más rápida que si usas 32 bits.

Para compilar una aplicación Visual C# en 64 bits accede al menú "Generar" - "Administrador de configuración", aparecerá una línea como la siguiente:

Nombre del proyecto ---- Debug ---- x86

En "Plataforma" (actualmente x86) pulsa en el desplegable y selecciona "<nueva>", en la ventana de Nueva plataforma de proyecto, en "Nueva plataforma" selecciona "Any CPU", en "Copiar configuración de" selecciona "x64". Pulsa "Aceptar" y pulsa en "Cerrar".

A partir de ahora, cuando generes el ejecutable de tu aplicación desde "Generar" - "Generar nombre_proyecto" se generará una aplicación de 64 bits y los orígenes de datos que uses desde ella serán los de 64 bits. Así sí te funcionará tu aplicación pues te permitirá usar el ODBC de 64 bits de PostgreSQL llamado "PostgreSQL Unicode(x64)".

2. La segunda opción es usar en tus equipos de 64 bits los orígenes de datos de 32 bits para ello compila tu aplicación con la configuración por defecto x86 en 32 bits y para los orígenes de datos ODBC instala los de 32 bits. Si quieres crear el origen de datos, como nos indicas, "bdfacturacion" para PostgreSQL NO uses el panel de control de Windows 7 pues ahí en "Orígenes de datos ODBC" lo crearás para 64 bits, para 32 bits ejecuta:

C:\Windows\SysWOW64\odbcad32.exe

El fichero anterior te mostrará los orígenes de datos ODBC de tu equipo para 32 bits x86. Crea aquí el origen de datos "bdfacturacion" con PostgreSQL de 32 bist. Así sí te funcionará en tu aplicación de 32 bits.


Ultima edición por alonsojpd el Sab Jul 07, 2012 8:39 pm, editado 1 vez
MensajePublicado:
Sab Jul 07, 2012 8:36 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Acceso a ODBC de 64 bits x64 con Visual C# .Net 2010 Responder citando



Anuncios



Resumiendo:

1. Visual Studio .Net 2010 te permite generar aplicaciones x64 que serán compatibles con los drives ODBC x64 y sólo funcionarán en sistemas operativos x64.

2. Trabajando con x32, necesitarás el ODBC x32 del motor de base de datos que quieras usar y crear el ODBC en: C:\Windows\SysWOW64\odbcad32.exe
MensajePublicado:
Sab Jul 07, 2012 8:38 pm
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: [RESUELTO] Acceso a ODBC de 64 bits x64 con Visual C# .Net Responder citando



Anuncios



¡¡¡Muchísimas gracias por tus indicaciones!!! había leído por ahí que con Visual Studio .Net no se podían crear aplicaciones de 64 bits, ahora veo que sí. Al final he usado ambos métodos, creo dos aplicaciones, una para 32 bits y otra para 64 bits, así es, como tú dices, más eficiente, en los equipos x64 uso el ODBC x64 y la aplicación x64 de C# y en los equipos con Windows XP x32 uso la aplicación x32 y el ODBC también x32 de PostgreSQL.

Me funciona de maravilla en plataformas x64 y x32.
MensajePublicado:
Sab Jul 07, 2012 8:45 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » VB.Net, C# .Net, Visual Studio .Net  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A