Исправление: Набора записей ADO сохраняет свойства фильтра при маршалировать-процедура

Переводы статьи Переводы статьи
Код статьи: 264442
Развернуть все | Свернуть все

Проблема

При передаче отключенных ADOНабор записеймежду двумя объектами COM, в том же приложении COM +, некоторые расширенные свойстваНабор записейНапримерФильтр:свойства будут потеряны. В подобных конфигурации в пакете Microsoft Transaction Server (MTS) для Microsoft Windows NT 4.0 расширенного свойства не будут потеряны.

Причина

COM + теперь выполняется в процессе маршалирования при передаче объекта ADOНабор записеймежду двумя объектами COM. При выполнении в процессе маршалирования, ADO создается эквивалент копиюНабор записей, а не упаковка существующего ADOНабор записейуказатель на интерфейс. Такие, как это приводит к потере расширенных свойствФильтр:Свойство. Расширенные свойства одного и того же потери возникает при создании точной копии объекта ADOНабор записей, или при передаче отключенных ADOНабор записейout-of-process, но в определенных случаях осуществляется с помощью конструктора.

Решение

Эта проблема исправлена в последних пакетов обновления для Windows 2000 и компоненты MDAC версии 2.5.
  • Для решения проблемы загрузите последний пакет обновления для Windows 2000.. Дополнительные сведения см. в следующей статье базы знаний Майкрософт::
    260910Как получить последний пакет обновления для Windows 2000
  • Чтобы решить эту проблему, получите последний пакет обновления для Microsoft Data Access компоненты 2.5. Дополнительные сведения см. в следующей статье базы знаний Майкрософт::
    293312ИНФОРМАЦИЯ: Как получить последние версии MDAC 2.5 с пакетом обновления
Английская версия данного исправления содержит версии файлов, приведенные в следующей таблице или более поздние.:
   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 
				

Статус

Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в начале данной статьи..Эта проблема была первой исправлено в Microsoft Data Access компонентов (MDAC) версии 2.5 SP2, компоненты MDAC версии 2.6 и Microsoft Windows 2000 с пакетом обновления 2 (SP2).

Дополнительная информация

В COM +, если объект, такой как ADOНабор записейпередается между двумя объектами COM, в том же приложении COM +, объект будет маршалировать в процессе, а не только что переданного как указатель интерфейса без упаковки. Это происходит в COM +, даже если объекты COM вызывающий и вызываемый объекты находятся в такой же процесс, поток и апартамент COM. Когда COM + пытается упаковать объект между двумя объектами COM, он запрашиваетIMarshalинтерфейс из передаваемого объекта. Если возвращается переданный объектIMarshalинтерфейс, COM + использует этот интерфейс для маршалирования объекта в процессе путем вызова методаIMarshal::MarshalInterfaceс помощью флага MSHCTX_INPROC.

До применения этого исправления отключенных ADOНабор записейреализует в процессе маршалирования, создавая эквивалент копиюНабор записей, который не копирует всеНабор записейрасширенные свойства, такие какФильтр:. Таким образом, при передаче объекта ADOНабор записеймежду двумя объектами COM в COM +, расширенные свойства, такие какФильтр:будут потеряны.

После установки исправления ADO выполняет в процессе упаковки с помощью бесплатного многопоточных упаковщика (FTM), что эквивалентно передаче указателя интерфейса на исходный объект из вызывающего и вызываемого метода. С помощью FTM, ADO могут эффективно упаковать ADOНабор записейвнутри COM + и поддерживать все расширенные свойства.

Обратите внимание, что при передаче подключения ADOНабор записейс егоCursorLocationсвойству присвоено значениеadUseServerФайлНабор записейне терять расширенные свойства при передаче между двумя объектами COM в приложении COM +.

Свойства

Код статьи: 264442 - Последний отзыв: 19 ноября 2010 г. - Revision: 2.0
Ключевые слова: 
kbqfe kbhotfixserver kbado260fix kbbug kbfix kbmdac250sp2fix kbmt KB264442 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: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