2011-07-19 4 views
2

J'utilise l'objet ADODB COM dans mon application C# développée sur Windows 2008 R2 Standard 64bit. Maintenant, j'ai déplacé l'application sur le serveur prod avec Windows 2008 Standard 64bit (pas R2) et maintenant je reçois une erreur ci-dessous. Il semble que MDAC 2.8 n'est pas installé sur ma machine prod? Je ne trouve pas de référence comment installer MDAC 2.8 sur Windows 2008 machine, peut-être quelqu'un pourrait me diriger vers la bonne direction?Objet ADODB COM non trouvé

Erreur: Impossible de transformer un objet COM de type 'ADODB.StreamClass' en type d'interface 'ADODB._Stream'. Cette opération a échoué car l'appel QueryInterface sur le composant COM pour l'interface avec IID '{00001565-0000-0010-8000-00AA006D2EA4}' a échoué en raison de l'erreur suivante: Aucune interface de ce type n'est prise en charge (Exception de HRESULT: 0x80004002 (E_NOINTERFACE)) .,

Répondre

4

Avec Windows Server 2008 R2 SP1, les interfaces COM ADO ont été modifiées. Par conséquent, toute application ADO compilée sur un système avec Windows 7 SP1 ou Server 2008 R2 SP1 ne s'exécute pas sur les anciens systèmes d'exploitation (tels que Server 2008 non-R2).

Voici le lien vers l'article Base de connaissances décrivant cette question (KB2517589):

L'article contient également quelques solutions de contournement, en particulier, il lie à une « compatibilité typelib "que vous pouvez utiliser pour compiler sur votre machine dev. Malheureusement, il n'existe pas encore de solution "réelle" pour ce problème (ce qui est particulièrement douloureux pour les développeurs VBA, où la seule solution actuelle consiste à désinstaller Windows 7 SP1 sur la machine dev). Il y a un fil dans les forums Microsoft où cette question est discutée et où les mises à jour sont affichés:


MISE À JOUR: En attendant, Microsoft a publié un correctif pour ce problème.Si vous installez le correctif à partir de la page suivante (KB 2640696) sur votre machine de développement Windows 7 SP1/2008R2 SP1 et recompiler votre application, il sera de nouveau travailler sur les systèmes d'exploitation plus anciens:

+0

C'est la bonne réponse. L'installation de 2008 R2 SP1 doit être considérée comme la solution. –

+0

@Hans: Sa machine de production est 2008 * non-R2 *. – Heinzi

+0

J'ai cherché la solution toute la journée et il semble que la mise à niveau vers 2008 R2 est la bonne étape. Toutes les autres solutions que j'ai trouvées sont vagues et non fiables. – Tomas

1

peut-être que vous pouvez essayer l'utilitaire suivant pour identifier si elle est vraiment là ou non: MDAC utilitaire: Vérificateur de composants http://www.microsoft.com/download/en/details.aspx?id=1953 il ne mentionne pas Windows Server 2008, mais peut-être cela fonctionne ...

Si vous êtes certain qu'il n'existe aucun objet ADODB COM sur ce serveur, vous devez installer les composants MDAC2.8 que vous pouvez également télécharger à partir de Microsoft.

Lien: http://www.microsoft.com/download/en/details.aspx?id=5793

En outre, dans un vous que Windows Server 2008 peut aller dans le dossier: C: \ Program Files \ Common Files \ System \ ado et vérifiez si vous avez les composants MDAC là. Pour MDAC 2.8, vous devez avoir: msado28.tlb qui est celui que vous pouvez utiliser pour référencer des objets ADODB dans un projet MS OFfice VBA.

+0

I J'ai essayé d'utiliser cet utilitaire mais je ne comprends pas comment l'utiliser, très complexe. Aussi essayait d'installer des pilotes de votre lien suggéré, mais rien ne se passe. Je démarre le paquet d'installation, voir la décompression des fichiers, puis rien. Je ne reçois aucun message d'erreur ou message de confirmation d'installation. Ce package d'installation a également été créé en 2005 et Windows 2008 n'est pas répertorié en tant que système d'exploitation pris en charge. – Tomas

+0

C'est vrai. Il ne mentionne pas Server 2008, ce qui signifie qu'il n'est pas pris en charge comme indiqué ici: http://msdn.microsoft.com/en-us/library/ms810810.aspx. Vous devrez donc modifier votre programme pour utiliser ADO.NET à la place. de COM Interop. –

+0

Je me demande quels composants VBA utilise dans MS Office installé sur Windows Server 2008 ou même Win 7 pour se connecter à une base de données si MDAC n'est pas supporté dessus. –