CORRECTIF : Le passage du jeu d'enregistrements ADO ByRef réinitialise les informations d'erreur

Traductions disponibles Traductions disponibles
Numéro d'article: 264701 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F264701
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Symptômes

Si vous passez un jeu d'enregistrements ADO en utilisant un paramètre de méthode ByRef vers un objet COM hors processus et que cet objet COM hors processus génère une erreur, cette information d'erreur peut ne pas être signalée correctement à l'application client.

Cause

Lorsqu'un jeu d'enregistrements ADO est mis en ordre hors processus à l'aide d'un paramètre de méthode ByRef, le code de mise en ordre personnalisé implémenté par ADO côté client et côté serveur est activé. Ce code réinitialise l'objet erreur OLE en attente généré par l'objet COM.

Résolution

Ce problème a été résolu dans les derniers Service packs pour Windows 2000 et MDAC 2.5.
  • Pour résoudre ce problème, procurez-vous le dernier service pack de Windows 2000. Pour plus d'informations, consultez l'article suivant dans la Base de connaissances de Microsoft :
    260910 Obtention du dernier Service Pack de Windows 2000
  • Ce problème a été corrigé une première fois dans Microsoft Data Access Components 2.5 Service Pack 2 et Microsoft Windows 2000 Service Pack 2.
   Date        Heure  Version      Taille   Nom de fichier  Plate-forme
   --------------------------------------------------------------------
   06/09/2000  13:02  2.50.5408.0  327,952  Msadce.dll      x86 
   06/09/2000  12:46  2.50.5408.0  487,696  Msado15.dll     x86 

Contournement

Pour contourner ce problème, passez un jeu d'enregistrements ADO en utilisant le paramètre ByVal, puis retournez un jeu d'enregistrements ADO en utilisant une valeur de retour.

Statut

Pour résoudre ce problème, procurez-vous le dernier Service Pack pour Microsoft Data Access Components 2.5. Pour plus d'informations, consultez l'article suivant dans la Base de connaissances Microsoft :
293312 INFO : Obtention du dernier Service Pack de MDAC 2.5
Ce problème a été corrigé une première fois dans Microsoft Data Access Components 2.5 Service Pack 2 et Microsoft Windows 2000 Service Pack 2.

Plus d'informations

Un paramètre ByRef est un paramètre de méthode COM défini par la bibliothèque de types de l'objet COM en tant que paramètre [in,out]. Dans Microsoft Visual Basic (VB), si vous créez un objet COM et que vous ajoutez le mot clé ByRef avant un paramètre de méthode, Visual Basic configure cette méthode pour accepter et retourner une variable objet en utilisant la directive [in,out] dans la bibliothèque de types de l'objet COM.

Ce problème a été reproduit dans les scénarios suivants :
  1. Un serveur EXE COM Visual Basic ou Visual C++ COM EXE qui, à la fois, accepte un jeu d'enregistrements ADO utilisant ByRef [in,out] et qui émet une erreur à l'intérieur même de l'appel de méthode.
  2. Un serveur DLL COM Visual Basic ou Visual C++ COM EXE hébergé dans MTS ou COM+ qui, à la fois, accepte un jeu d'enregistrements ADO utilisant ByRef [in,out] et qui émet une erreur à l'intérieur même de l'appel de méthode.
Dans ces situations, l'erreur émise par le composant COM n'est pas signalée au client ; l'erreur " La méthode '~' de l'objet '~' a échoué " est renvoyée à la place.

Notez que vous devez appliquer ce correctif aux ordinateurs clients et aux ordinateurs serveurs afin de résoudre le problème dans les cas où le client et le serveur COM se trouvent sur deux ordinateurs distincts (par exemple en cas d'utilisation de DCOM sur un serveur COM distant).

Propriétés

Numéro d'article: 264701 - Dernière mise à jour: dimanche 23 février 2014 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Data Access Components 2.5
Mots-clés : 
kbnosurvey kbarchive kbbug kbfix kbmdac250sp2fix kbqfe kbgrpdsmdac kbado kbhotfixserver KB264701
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com