Comment me connecter à mon serveur SQL 64 bits avec ODBC?

J'ai récemment installé SQL Server 2008 Express sur ma machine Windows 7 Ultimate x64 home. J'ai aussi IIS 7.5 avec PHP 5.3, et j'essayais de me connecter à SQL via ADODB, mais a continué de faire cette erreur:

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

après avoir creusé un peu sur internet, je pense que c'est parce que le pilote ODBC du serveur SQL est destiné aux systèmes d'exploitation 32 bits, et le mien est 64. Tout d'abord, ai-je raison? Est-ce la raison pour laquelle je suis en cours d'exécution dans le trouble? Deuxièmement, si alors, comment puis-je résoudre ce problème? Y a-t-il des pilotes ODBC mis à jour qui fonctionnent avec des systèmes d'exploitation 64 bits? J'ai regardé mais n'a pas pu trouver...

16
demandé sur SoaperGEM 2009-12-23 20:18:46

6 réponses

vous avez raison en ce que cela a à voir avec les bits.

Espérons que cela aide:

--à Partir de MSDN --

gérer une source De données qui se connecte à un pilote 32 bits sous 64 bits plate-forme, utiliser c:\windows\sysWOW64\odbcad32.EXE. Pour gérer une donnée source qui se connecte à un pilote 64 bits, utilisez c:\windows\system32\odbcad32.EXE. Si vous utilisez l'odbcad32 64 bits.EXE pour configurer ou supprimer un DSN qui se connecte à un pilote 32 bits, vous recevoir ce message.

27
répondu MkUltra 2012-07-24 03:14:19

j'ai eu le même problème en essayant de relier un serveur 64 bits SQL 2012 à 'Sage Timberline' en utilisant une interface client ODBC envahissante.

je peux configurer le DSN 32 bits, mais SQL Server continue de me donner l'erreur "architecture mismatch" en essayant de créer un serveur lié en utilisant le DSN 32 bits.

4
répondu Scott 2012-08-28 06:01:14

j'ai essayé C:\Windows\SysWOW64\odbcad32.exe pour ajouter le pilote. Mais quand je mets en place un serveur lié entre MAS90 et SQL Server 2008 R2, j'obtiens toujours l'erreur d'inadéquation de l'architecture. Je viens de parler à un gars de Sage et il dit que ça ne marchera pas avec l'Édition 64 bits de Sql Server. Le serveur lié ne fonctionne avec MAS90 que si L'édition de Sql Server est de 32 bits.

2
répondu Sapen 2012-07-12 23:57:31

je parie que vous travaillez avec L'utilisateur DSNs.

selon votre point de vue, il y a une "fonctionnalité" ou un "bug" dans L'environnement Windows 64 bits --

  1. DSNs D'Utilisateur 32 bits apparaissent dans l'administrateur 64 bits et quand les applications de client 64 bits demandent tous les DSNs disponibles -- même si les DSNs 32 bits ne peuvent pas être utilisé par l'application client 64 bits et L'administrateur.

  2. utilisateurs de 64 bits DSNs apparaissent dans le 32-bit Administrateur et quand les applications client 32 bits demandent tous les DSNs disponibles -- même si les DSNs 64 bits ne peuvent pas être utilisé par l'application client 32 bits et L'administrateur.

le message d'erreur que vous décrivez apparaît à chaque fois qu'il y a un tel décalage de bitness entre le DSN et le client essayant de travailler avec lui.

la recommandation de Microsoft est de nommer votre DSNs utilisateur avec _32 ou _64, selon le bitness du pilote sur lequel ils sont baser. .. ou un bâton avec la Dsn Système.

il existe des solutions 32 et 64 bits pour la connexion que vous voulez. La petitesse de votre(Vos) application (s) client (s) -- IIS & PHP, dans ce cas-ci -- dicte la petitesse de la solution dont vous avez besoin.

1
répondu TallTed 2010-01-14 03:40:30

si l'application 32 bits sur le système d'exploitation 64 bits (l'application que vous êtes installé sous [program files (X86)] utiliser le suivant C:\Windows\SysWOW64\odbcad32.exe

autrement l'application 64 bits et le système d'exploitation 64 bits utilisent le suivant C:\Windows\System32\odbcad32.exe

sinon vous obtiendrez une erreur comme "Architectural mismatch"

Espérons que cela permettra d'économiser de la journée de quelqu'un :)

1
répondu kta 2013-06-04 05:38:57

Cela a fonctionné pour moi: Mise à jour de la solution, assurez-vous que L'application IIS n'est pas définie à 32 bits sur Windows x64. Plus d'infos: http://forum.gpsgate.com/topic.asp?TOPIC_ID=13711 à partir de:

http://forum.gpsgate.com/topic.asp?TOPIC_ID=13622

0
répondu David B 2013-09-06 02:09:01