REVISIÓN: Recordset ADO pierde propiedades de filtro cuando se calcula en proceso

Seleccione idioma Seleccione idioma
Id. de artículo: 264442 - 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

Al pasar un Recordset de ADO desconectado entre dos objetos COM en la misma aplicación COM +, ciertas propiedades extendidas del Recordset , como la propiedad Filter se pierden. En una configuración similar en un paquete de Transaction Server (MTS) en Microsoft Windows NT 4.0, las propiedades extendidas no se pierden.

Causa

COM + ahora realiza cálculo de referencias en procesos al pasar un objeto Recordset de ADO entre dos objetos de COM. Al realizar el cálculo de referencias en proceso, ADO crea el equivalente de un clon del conjunto de registros , en lugar de cálculo de referencias existente ADO Recordset puntero de interfaz. Esto provoca una pérdida de propiedades extendidas como la propiedad Filter . La misma pérdida de las propiedades extendidas se produce cuando se crea un clon de un objeto Recordset de ADO, o cuando se pasa un desconectado ADO Recordset fuera de proceso, pero estos casos concretos son por diseño.

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
La versión en inglés de esta revisión debe tener los atributos de archivo siguientes o posteriores:
   Date         Time    Version       Size      File name    Platform
   ------------------------------------------------------------------
   05/23/2000   22:22   2.51.5629.0   327,952   Msadce.dll   x86 
   05/23/2000   22:19   2.51.5629.0   487,696   Msado15.dll  x86 
				

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 fue primera corregido en Microsoft Data Access Components (MDAC) versión 2.5 Service Pack 2, versión 2.6 de MDAC y Microsoft Windows 2000 Service Pack 2.

Más información

En COM +, cuando se pasa un objeto como un objeto Recordset de ADO entre dos objetos de COM de la misma aplicación de COM +, el objeto está en proceso calcula lugar sólo se pasa como un puntero de interfaz sin cálculo de referencias. Esto ocurre en COM +, incluso si los objetos COM llamador y destinatario están en el mismo proceso, subproceso y apartamento COM. Cuando COM + intenta calcular referencias de un objeto entre dos objetos de COM, consulta para una interfaz IMarshal desde el objeto pasado. Si el objeto pasado devuelve una interfaz IMarshal , COM + utiliza esta interfaz para convertir el objeto de proceso llamando IMarshal::MarshalInterface mediante el indicador MSHCTX_INPROC.

Para poder aplicar esta revisión, un Recordset de ADO desconectado implementa el cálculo de referencias en procesos creando el equivalente de un clon del objeto Recordset , que no se copia todo el Recordset extendido propiedades como filtro . Por lo tanto, si pasa un objeto Recordset de ADO entre dos objetos COM en COM +, se pierden las propiedades extendidas, como filtro .

Después de aplicar la revisión, ADO realiza cálculo de referencias en el proceso mediante el contador de referencias de subprocesos libre (FTM) que es equivalente a pasar un puntero de interfaz al objeto original del llamador al destinatario. Mediante el FTM, ADO puede calcular referencias de un objeto Recordset dentro de COM + de ADO y mantener eficazmente todas las propiedades extendidas.

Tenga en cuenta que si se pasa un conectados ADO Recordset que tiene su propiedad CursorLocation establecida en adUseServer , este Recordset no pierde las propiedades extendidas si pasa entre dos objetos COM en una aplicación.

Propiedades

Id. de artículo: 264442 - Última revisión: lunes, 03 de febrero de 2014 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft ActiveX Data Objects 2.5
Palabras clave: 
kbnosurvey kbarchive kbmt kbqfe kbhotfixserver kbado260fix kbbug kbfix kbmdac250sp2fix KB264442 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): 264442

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