Исправление: «Неверное имя объекта» ошибка при обновлении путем хранимой процедуры в другой базе данных


Симптомы


Где — имя таблицы, которую вы пытаетесь обновить имя объекта будет возвращена следующая ошибка:
Недопустимое имя объекта имя объекта
Это сообщение об ошибке возникает при выполнении следующих условий:
  • Существует SQL Server хранимые процедуры в одной базе данных, который выбирает записи из таблицы в другую базу данных.
  • Результирующий набор записей возвращается в приложение или службу.
  • Этот набор записей затем передается out-of-process как отключенный набор записей ADO (объекты данных ActiveX) другого клиентского приложения.
  • Попытка обновления к отключенному набору записей.

Если набор записей никогда не маршалируются вне процесса, но доставляется непосредственно на процесс, который пытается обновить его вместо, инструкция UPDATE завершается успешно.

Причина


Удаленное взаимодействие часть ADO (Msdaprst.dll) непредусмотренную перезапись части метаданных, содержащихся в наборе записей. При формировании инструкции UPDATE впоследствии, эти метаданные не доступен и создается неправильный синтаксис.

Изучение трассировки журналов показывают, что database.owner.tablename правильный синтаксис использовался при выборе записи, но только имя таблицы использовался при формировании инструкции UPDATE .

Поскольку подключение в данный момент указывает базу данных, содержащую хранимые процедуры и таблицы не существует в этой базе данных, возвращаются ошибки «Неверное имя объекта».

Решение


Доступно исправление от корпорации Майкрософт, но оно предназначено только для устранения проблемы, описанной в этой статье. Следует примените только на компьютерах, где наблюдается данная проблема. Это исправление может проходить дополнительное тестирование. Таким образом Если вы не подвержены серьезно эту проблему, рекомендуется дождаться следующего пакета обновления Microsoft Data Access, содержащего это исправление.

Чтобы решить проблему немедленно, обратитесь к технической поддержки корпорации Майкрософт для получения исправления. Полный список телефонов служб поддержки продуктов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-узел корпорации Майкрософт:Примечание: В особых случаях оплата, предусмотренная в службу для обращения в службу поддержки может быть отменена, если специалистом службы технической поддержки Майкрософт определяет, что обновление будет решения проблемы. Обычные расходы по поддержке будут применены дополнительные вопросы и проблемы, которые не соответствуют требованиям особым обновлением.

Английская версия данного исправления должны иметь следующие атрибуты файлов или более поздние:
   Date              Version      Size    File name      
-----------------------------------------------------
7/22/99 2.10.4321 203KB msdaprst.dll




Статус


Корпорация Майкрософт установила, что это является проблемой в продуктах Майкрософт, перечисленных в начале данной статьи.

Эта ошибка была исправлена в MDAC 2.5.

Для получения последней версии компонентов доступа к данным Microsoft (MDAC) увидеть следующий веб-узел корпорации Майкрософт:

Дополнительные сведения





ВАЖНО!

Не рекомендуется установить это исправление на компьютере, на котором запущены компоненты MDAC 2.1 с пакетом обновления 2 (версия 2.12.4202) или более поздней версии. Это исправление можно использовать только с компьютерами под управлением пакета обновления 1 для MDAC 2.1 (версия 2.10.3711) или более ранней версии.

Для устранения проблемы фрагментации памяти громоздким кодом изменений между MDAC 2.1 SP1 и SP2 для MDAC 2.1. Хотя не ожидается возникновения неустранимой ошибки Если исправления для компонентов MDAC 2.1 с пакетом обновления 2, это настоятельно не рекомендуется.

Для решения этой проблемы в пакете обновления SP2 для MDAC 2.1 существует отдельное исправление.

Обратитесь к разделу "ссылки" данной статьи для получения дополнительных сведений.

Ручная установка

  1. Закрыть или остановить все приложения или службы, использующие Msdaprst.dll. К ним относятся Internet Information Server (IIS), Microsoft Transaction Server (MTS), координатор распределенных транзакций (DTC) и любые приложения ADO и OLE DB.
  2. Загрузите версию исправления Msdaprst.dll во временную папку.
  3. Найдите и переименуйте текущей версии Msdaprst.dll, который должен находиться в папке files\System\msadc \Program Files\Common.
  4. Копирование версии исправления Msdaprst.dll в том же месте и перезапуск служб и приложений.


Важная информация для пользователей Microsoft Windows 95/98

При установке этого исправления на компьютере под управлением Windows 95 или на компьютере с исходной версии Windows 98 может потребоваться установить DLL миграции Windows 98, входящих в состав данного исправления.

Примечание: Прочитайте файл Migrate_qfe.txt, включенный в состав загрузки файла Migration.exe.



ССЫЛКИ


Дополнительные сведения об этом исправлении применительно к MDAC 2.1 с пакетом обновления 2, посетите найти в базе знаний Майкрософт в статье:

238092 недопустимый объект имя ошибки при обновлении через хранимую процедуру в другой базе данных


Дополнительные сведения на упомянутые выше проблемы фрагментации памяти обратитесь к следующей статье найти в базе знаний Майкрософт::
230101 запросы данных перебоями возвращают пустые наборы записей