2009-12-23 13 views
16

Recientemente instalé SQL Server 2008 Express en mi máquina casera Windows 7 Ultimate x64. También tengo IIS 7.5 con PHP 5.3, y yo estaba tratando de conectarse a SQL a través ADODB, pero cuidado para conseguir este error:¿Cómo me conecto a mi servidor SQL de 64 bits con ODBC?

[Microsoft][ODBC Driver Manager] The specified DSN contains an 
architecture mismatch between the Driver and Application 

Después de hacer una pequeña cantidad de la excavación en el Internet, creo que esto es debido a que la El controlador ODBC de SQL Server está destinado a sistemas operativos de 32 bits, y el mío es de 64. En primer lugar, ¿estoy en lo cierto? ¿Es esta la razón por la que estoy teniendo problemas? En segundo lugar, si es así, ¿cómo puedo arreglar esto? ¿Hay controladores ODBC actualizados que funcionen con sistemas operativos de 64 bits? Miré pero no pude encontrar ninguna ...

Respuesta

25

Tienes razón en que tiene que ver con los bits.

Espero que esto ayude:

--De MSDN -

To manage a data source that connects to a 32-bit driver under 64-bit platform, use c:\windows\sysWOW64\odbcad32.exe. To manage a data source that connects to a 64-bit driver, use c:\windows\system32\odbcad32.exe. If you use the 64-bit odbcad32.exe to configure or remove a DSN that connects to a 32-bit driver you will receive this message.

+0

gracias! ¡Estoy sorprendido de lo difícil que es descubrir esto! – Guillermo

+0

Eso funcionó para mí también ... después de más de 30 minutos de jugar porque había copiado el camino equivocado. Si está leyendo este artículo, C: \ Windows \ SysWOW64 \ odbcad32.exe es el que desea. –

+0

Gracias, fue útil. :) – Dharmavir

1

apuesto a que está trabajando con DSN de usuario.

Dependiendo de su punto de vista, hay una "función" o "problema" en el entorno de Windows de 64 bits -

  1. DSN de 32 bits de usuario se muestran en el Administrador de 64 bits y cuando 64 las aplicaciones de cliente de bits solicitan todos los DSN disponibles, aunque los DSN de 32 bits no pueden ser utilizados por la aplicación de cliente de 64 bits y Adminstrator.

  2. DSN

    de 64 bits de usuario se muestran en el Administrador de 32 bits y cuando las aplicaciones cliente de 32 bits piden todos los DSN disponibles - a pesar de que los DSN de 64 bits no pueden ser utilizan por el cliente de 32 bits aplicación y Adminstrator.

El mensaje de error que describes aparece cada vez que hay una falta de correspondencia de bits entre el DSN y el cliente que intenta trabajar con él.

La recomendación de Microsoft es nombrar sus DSN de usuario con _32 o _64, dependiendo de la bitness del controlador en el que están basados ​​... o seguir con los DSN del sistema.

Existen soluciones de 32 bits y de 64 bits para la conexión que desee. El bitness de su (s) aplicación (es) cliente (s) - IIS & PHP, en este caso, dictan la bitidez de la solución que necesita.

+0

De hecho, he intentado configurar cosas como DSN del sistema. Si lo desea, básicamente he vuelto a hacer esta pregunta en Server Fault porque se trata más de la administración del servidor que de la programación. Todavía no está resuelto, así que si crees que puedes resolverlo, ¡por supuesto que sí! http://serverfault.com/questions/97074/ – SoaperGEM

2

Probé el C:\Windows\SysWOW64\odbcad32.exe para agregar el controlador. Pero cuando configuro un servidor vinculado entre MAS90 y SQL Server 2008 R2 sigo teniendo el error de discrepancia de arquitectura. Acabo de hablar con un chico de Sage y dice que no funcionará con la edición de 64 bits del servidor Sql. El servidor vinculado funciona con MAS90 solo si la edición de Sql Server es de 32 bits.

+3

"Acabo de hablar con un chico" no es realmente una referencia – Dhara

4

He estado teniendo el mismo problema al tratar de vincular un servidor SQL 2012 de 64 bits a 'Sage Timberline' utilizando la interfaz de cliente omnidireccional.

Puedo configurar el DSN de 32 bits, pero SQL Server me sigue dando el error de "falta de armonía de arquitectura" cuando intento crear un servidor vinculado utilizando el DSN de 32 bits.

+0

scott estoy teniendo este problema, ¿fueron capaces de hacer algo al respecto? –

1

si la aplicación de 32 bits del sistema operativo de 64 bits (la aplicación que está instalado en [archivos de programa (x86)] usar el siguiente C: \ Windows \ SysWOW64 \ odbcad32.exe

lo contrario aplicación de 64 bits y sistema operativo de 64 bits use el siguiente C: \ Windows \ System32 \ odbcad32.exe

de lo contrario obtendrá un error como "falta de coincidencia arquitectónico"

Hope esto ahorrará el día a alguien :)

Cuestiones relacionadas