2016-10-05 2 views
0

J'ai une application héritée VB6 qui utilise des pilotes ADO 32 bits pour établir une connexion de base de données à l'aide d'ODBC.Fournisseur Microsoft OLEDB pour la version ODBC 64 bits sur Windows Server 2012 pour le processeur x64

Maintenant, le client a installé la version 64 bits de la base de données, et je reçois une erreur:

[Microsoft] [ODBC Driver Manager] Le DSN spécifié contient un décalage d'architecture entre le pilote et l'application

erreur Source: Microsoft OLE DB pour pilotes ODBC

J'ai vérifié le net mais n'a pas pu trouver 64 bits pilotes OLEDB pour Windows Server 2012. Il y avait un lien pour Windows Server 2003.

Quelqu'un peut-il confirmer si les pilotes existent et afficher le lien pour les télécharger? Merci.

EDIT 1: Cette question est différente de: Migrating VB6 code to use 64-bit ODBC DSN

Cette question est plus sur télécharger le pilote ODBC 64 bits, alors que cette question est des changements de code.

EDIT 2: Même si je trouve des pilotes 64 bits, mon application VB6 est 32 bits. Une application 32 bits peut-elle utiliser des pilotes 64 bits? Notez que l'installation de la version 32 bits de la base de données est exclue.

Répondre

1

Votre ancienne application VB6 est un client OLE DB 32 bits. Il nécessite donc un 32-bit OLE DB Provider for ODBC Data Sources, et un 32-bit ODBC Driver, tels que ceux de my employer ou de diverses autres sources.

L'application VB6 charge des bibliothèques en mémoire partagée, et tous ces bien correspondance bitness - l'application VB6, le fournisseur OLE DB il charge, et dans ce cas, le pilote ODBC que des charges, et dans certains cas, d'autres bibliothèques que charges. Les communications se produisent alors sur (généralement) la pile TCP/IP ou d'autres couches de réseau - qui n'ont pas besoin d'être d'accord en bits - entre les bibliothèques côté client (pilote ODBC) et le serveur (c'est-à-dire, SGBD).

Peu importe que le SGBD cible ou que le système d'exploitation hôte de l'application soit maintenant 64 bits.

+0

Mais la base de données tierce est maintenant 64 bits, et ils ont besoin d'utiliser la version 64 bits uniquement pour améliorer les performances. Alors, comment vont fonctionner les pilotes 32 bits? – AllSolutions

+0

J'ai élargi ma réponse. – TallTed

+0

Le couplage entre un serveur de base de données et ses clients est très souple, sauf dans le cas de bases de données intégrées. Il ne se produit pas au niveau d'un appel de procédure, mais via une forme de réseau IPC, par exemple. Connexions TCP. Vous n'avez pas besoin d'un client Telnet 64 bits pour vous connecter à un serveur Telnet 64 bits, n'est-ce pas? – Bob77