REVISIÓN: Pasar ByRef de Recordset de ADO restablece la información de error

Seleccione idioma Seleccione idioma
Id. de artículo: 264701 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Síntomas

Si pasa un objeto recordset de ADO mediante un parámetro de método de ByRef a un objeto COM de fuera de proceso y el objeto COM de fuera de proceso genera un error, esta información de error puede no correctamente notificarse a la aplicación cliente.

Causa

Cuando un objeto recordset de ADO se calcula de fuera de proceso utilizando un parámetro de método ByRef, se activa el código de cálculo de referencias personalizado implementada por ADO en el cliente y el servidor lados y este código restablece el objeto de error OLE pendiente que se genera el objeto COM.

Solución

Este problema se corrigió en los service Pack más recientes para Windows 2000 y MDAC 2.5.
  • Para resolver este problema, obtenga el Service Pack más reciente de Windows 2000. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    260910Cómo obtener el Service Pack más reciente para Windows 2000
  • Para resolver este problema, obtenga el service pack más reciente para Microsoft Data Access Components 2.5. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    293312INFO: Cómo obtener la más reciente de MDAC 2.5 Service Pack
   Date        Time   Version      Size     File name     Platform
   ---------------------------------------------------------------
   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 
				

Solución

Una solución consiste en pasar de un conjunto de registros ADO mediante un parámetro ByVal y, a continuación, devolver un conjunto de registros ADO utilizando un valor devuelto.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:" de este artículo. Este problema se corrigió por primera vez en Microsoft Data Access Components 2.5 Service Pack 2 y Microsoft Windows 2000 Service Pack 2.

Más información

Un parámetro ByRef es un parámetro de método COM definido por la biblioteca de tipo del objeto COM como un parámetro [in, out]. En Microsoft Visual Basic (VB), si crea un objeto COM y agregar la palabra clave ByRef antes algunos parámetros de método, Visual Basic configurará este método para ambos aceptan y devuelven una variable de objeto mediante la directiva [in, out] en la biblioteca de tipo del objeto COM.

Este problema se ha reproducido en las situaciones siguientes:
  1. Un servidor de Visual Basic o Visual C++ COM EXE que ambos acepta un objeto recordset de ADO con ByRef [in, out] y dentro del método llamada provoca un error.
  2. Una DLL de Visual C++ COM alojado en MTS o COM + que ambos acepta un objeto recordset de ADO ByRef en Visual Basic o [in, out] y dentro del método llamada provoca un error.
En estas situaciones, no se informa del error real provocado por el componente COM al cliente; en su lugar, el error "método ' ~ 'del objeto' ~ ' error" se notifica.

Tenga en cuenta que necesitará aplicar esta revisión para el cliente y el servidor de equipos para resolver el problema en aquellos casos donde son cliente y servidor COM en dos equipos independientes (por ejemplo, cuando se utiliza DCOM a un servidor COM remoto).

Propiedades

Id. de artículo: 264701 - Última revisión: domingo, 23 de febrero de 2014 - Versión: 2.1
La información de este artículo se refiere a:
  • Microsoft Data Access Components 2.5
Palabras clave: 
kbnosurvey kbarchive kbmt kbqfe kbhotfixserver kbbug kbfix kbmdac250sp2fix KB264701 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 264701

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