REVISIÓN: Error de "Nombre de objeto no válido" al actualizar mediante el procedimiento almacenado en otra base de datos


Síntomas


Se devuelve el error siguiente, donde nombre de objeto es el nombre de la tabla que está intentando actualizar.
Nombre de objeto no válido nombre de objeto
Este mensaje de error se produce en las siguientes condiciones:
  • Existe un procedimiento de SQL Server que almacena en una base de datos que selecciona registros de una tabla en otra base de datos.
  • El objeto recordset resultante se devuelve a una aplicación o servicio.
  • Ese conjunto de registros se pasa a otra aplicación de cliente fuera de proceso como un conjunto de registros desconectado de ADO (ActiveX Data Objects).
  • Se realiza un intento para actualizar el conjunto de registros desconectado.

Si el conjunto de registros nunca se calculan las referencias fuera de proceso, pero se entrega directamente en el proceso que está intentando actualizar en su lugar, la instrucción UPDATE se ejecuta correctamente.

Causa


La parte remota de ADO (Msdaprst.dll) sobrescriba por error partes de los metadatos contenidos en el conjunto de registros. Al construir posteriormente la instrucción UPDATE , estos metadatos no están disponible y se genera una sintaxis incorrecta.

Examen de seguimiento registra la presentación que se utilizó la sintaxis correcta database.owner.tablename al seleccionar los registros, pero sólo el nombre de la tabla se utilizó para la construcción de la instrucción UPDATE .

Porque actualmente apunta la conexión a la base de datos que contiene el procedimiento almacenado y la tabla no existe en esa base de datos, se devuelven errores de "Nombre de objeto no válido".

Solución


Ahora hay una revisión compatible de Microsoft, pero sólo se diseñó para corregir el problema que se describe en este artículo. Aplíquela sólo a equipos que experimenten este problema específico. Este arreglo puede recibir comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, Microsoft recomienda que espere al próximo service pack de Microsoft Data Access que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de números de teléfono de servicios de soporte técnico de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:Nota: en casos especiales, los gastos derivados de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

La versión en inglés de esta revisión debe tener los atributos de archivo siguientes o posteriores:
   Date              Version      Size    File name      
-----------------------------------------------------
7/22/99 2.10.4321 203KB msdaprst.dll




Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados al principio de este artículo.

Este problema se corrigió en MDAC 2.5.

La versión más reciente de Microsoft Data Access Components (MDAC), consulte el siguiente sitio Web de Microsoft:

Más información





¡IMPORTANTE!

No se recomienda que instale este hotfix en un equipo que se está ejecutando el Service Pack 2 de MDAC 2.1 (versión 2.12.4202) o posterior. Esta revisión sólo debe utilizarse con equipos con MDAC 2.1 SP1 (versión 2.10.3711) o una versión anterior.

Con el fin de aliviar los problemas de fragmentación de memoria, se realizaron cambios de código importantes entre MDAC 2.1 SP1 y SP2 de MDAC 2.1. Aunque no se espera que todos los errores graves se producen si se aplica esta revisión al Service Pack 2 de MDAC 2.1, hacerlo es totalmente desaconsejado.

Existe una revisión independiente para solucionar este problema en el Service Pack 2 de MDAC 2.1.

Consulte la sección referencias de este artículo para obtener más información.

Instalación manual

  1. Cierre o detenga las aplicaciones o servicios que están utilizando Msdaprst.dll. Esto puede incluir servicios de Internet Information Server (IIS), Microsoft Transaction Server (MTS), Coordinador de transacciones distribuidas (DTC) de Microsoft y las aplicaciones ADO u OLE DB.
  2. Descargue la versión de revisión de Msdaprst.dll en una carpeta temporal.
  3. Busque y cambie el nombre de la versión actual de Msdaprst.dll, que debe estar en la carpeta de comunes\System\msadc \Program Files\Common.
  4. Copie la versión de revisión de Msdaprst.dll en la misma ubicación y reinicie los servicios y aplicaciones.


Aviso importante para los usuarios de Microsoft Windows 95 ó 98

Si instala este hotfix en un equipo que ejecuta Windows 95 o un equipo con la versión original de Windows 98, debe instalar la DLL de migración de Windows 98 incluida con esta revisión.

Nota: lea el archivo Migrate_qfe.txt que se incluye en el archivo Migration.exe incluido en la descarga.



REFERENCIAS


Para obtener información acerca de esta revisión tal como se aplica al Service Pack 2 de MDAC 2.1, consulte el siguiente artículo que se encuentra en Microsoft Knowledge Base:

Errores de nombre de objeto no válido de 238092 cuando las actualizaciones a través de un procedimiento almacenan de base de datos diferente


Para obtener más información sobre el problema de la fragmentación de memoria mencionado anteriormente, consulte el siguiente artículo se encuentra en Microsoft Knowledge Base::
230101 consultas de datos esporádicamente devuelven conjuntos de registros vacíos