Update: ADO-Recordset verliert Filter-Eigenschaft bei gemarshallt in Prozeduren

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 264442 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Problembeschreibung

Wenn Sie eine getrennte ADO- Recordset zwischen zwei COM-Objekten in derselben COM+-Anwendung übergeben, sind bestimmte erweiterten Eigenschaften des Recordset z. B. die Eigenschaft Filter verloren. Unter einer ähnliche Konfiguration in ein Paket Microsoft Transaction Server (MTS) unter Microsoft Windows NT 4.0 sind die erweiterten Eigenschaften nicht verloren gehen.

Ursache

Com+ führt jetzt in-Process-marshalling, wenn ein ADO- Recordset zwischen zwei COM-Objekten übergeben. Bei in-Process-marshalling ADO erstellt einen Klon des Recordset die Entsprechung, statt das vorhandene ADO- Recordset marshalling Schnittstelle Zeiger. Dadurch wird ein Verlust der erweiterten Eigenschaften wie die Filter -Eigenschaft. Dieselbe Verlust der erweiterten Eigenschaften tritt auf, wenn Sie einen Klon eines ADO- Recordset erstellen, oder wenn Sie übergeben eine getrennte ADO- Recordset Out-of-Process, aber diese bestimmten Fällen sind entwurfsbedingt.

Lösung

Dieses Problem wird in den neuesten Service Packs für Windows 2000 und MDAC 2.5 behoben.
  • Installieren Sie das neueste Service Pack für Windows 2000, um dieses Problem zu beheben. Weitere Informationen finden Sie die folgende KB-Artikelnummer:
    260910Wie Sie das neueste Service Pack für Windows 2000 erhalten
  • Installieren Sie das neueste Servicepack für Microsoft Data Access Components 2.5, um dieses Problem zu beheben. Weitere Informationen finden Sie die folgende KB-Artikelnummer:
    293312INFO: Wie erhalten Sie die neueste MDAC 2.5 Servicepack
Die englische Version dieses Updates sollte die folgenden Dateiattribute (oder höher) aufweisen:
   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 
				

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt. Dieses Problem wurde in Microsoft Data Access Components (MDAC) Version 2.5 Service Pack 2, MDAC, Version 2.6 und Microsoft Windows 2000 Service Pack 2 behoben.

Weitere Informationen

In COM+ Wenn ein Objekt z. B. ein ADO- Recordset zwischen zwei COM-Objekten in derselben COM+-Anwendung übergeben wird das Objekt wird marshalled in-Process sondern ohne marshalling nur als einen Schnittstellenzeiger übergeben. Dies tritt in COM+, selbst wenn der Aufrufer und aufgerufene COM-Objekte im gleichen Prozess, Thread und COM-Apartments sind. Wenn COM+ versucht, ein Objekt zwischen zwei COM-Objekte marshallen, fragt er für eine IMarshal -Schnittstelle aus dem übergebenen Objekt. Wenn das übergebene Objekt eine IMarshal -Schnittstelle zurückgibt, verwendet COM+ diese Schnittstelle das Objekt in-Process durch Aufrufen von IMarshal::MarshalInterface mit MSHCTX_INPROC-Flag zu marshallen.

Implementiert, vor, um diesen Hotfix anwenden, getrennte ADO- Recordset in-Process-marshalling, indem Sie die Entsprechung von einen Klon des Recordsets , die keine aller das Recordset , erweiterte Eigenschaften wie z. B. Filter kopiert. Wenn Sie ein ADO- Recordset zwischen zwei COM-Objekten in COM+ übergeben, sind die erweiterten Eigenschaften wie z. B. Filter , verloren.

Nachdem Sie den Hotfix angewendet haben, führt ADO in-Process-marshalling verwenden FTM (Free Threaded Marshaller) entspricht dem ursprünglichen-Objekt einen Schnittstellenzeiger vom Aufrufer zum aufgerufenen übergeben. Verwenden den FTM, kann ADO effizient Marshallen eines ADO- Recordset in COM+ und Verwalten aller erweiterten Eigenschaften.

Beachten Sie, wenn Sie eine verbundene ADO- Recordset , der dessen auf AdUseServer CursorLocation -Eigenschaft festgelegt ist übergeben, dieses Recordset nicht erweiterte Eigenschaften, wenn zwischen zwei COM-Objekte in einer COM+-Anwendung übergeben verloren.

Eigenschaften

Artikel-ID: 264442 - Geändert am: Montag, 3. Februar 2014 - Version: 2.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ActiveX Data Objects 2.5
Keywords: 
kbnosurvey kbarchive kbmt kbqfe kbhotfixserver kbado260fix kbbug kbfix kbmdac250sp2fix KB264442 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 264442
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

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