Artikel-ID: 190958 - Geändert am: Mittwoch, 2. März 2005 - Version: 2.4 Beispiel: AOTBLOB Lese-/Schreibvorgänge BLOB mit OLE DB-Consumer-Vorlage
Auf dieser SeiteZusammenfassungDas AOTBLOB-Beispiel veranschaulicht lesen und Schreiben von long binary (BLOB) Datenfelder mithilfe der ATL OLE DB-Consumer-Vorlage-Klassen. Das Beispiel enthält Code zum Laden und speichern eine Bitmap-Datei und zum Laden und speichern Sie die Bitmap in einer Datenbanktabelle. Das Beispiel veranschaulicht auch Benutzer zum Auswählen einer Datenquelle mithilfe des Dialogfeldes Microsoft Datenverknüpfung auffordern, eine Verbindung auf die gleiche Weise wie eine durchsuchen herstellen, in ODBC. Hinweis: Das Beispiel die automatisch wird eine Tabelle mit dem Namen BLOB1234 auf der Ziel-Datenquelle für das Einfügen und die Extraktion der BLOB-Feld erstellt wird. Der Beispielcode wurde mit folgenden OLE DB-Providern getestet: Microsoft Jet 3.51 OLE DB-Provider (Msjtor35.dll 3.52.1527.4) Im Beispiel wurde auch mit den folgenden ODBC-Treibern Zugriff über den Microsoft OLE DB-Provider für ODBC-Treiber getestet: Microsoft OLE DB Provider für Oracle (msdaora.dll 02.00.3002.15) Microsoft OLE DB Provider für SQLServer (SQLOLEDB.dll 07.00.0502) Microsoft OLE DB Provider für ODBC-Treiber (msdasql.dll 02.00.3002.11) Microsoft SQL Server-ODBC-Treibers (Sqlsrv32.dll 3.60.0319). Microsoft ODBC-Treiber für Oracle (Msora32.dll 2.573.292700). Microsoft Access-Treiber (Odbcjt32.dll 3.51.1713) Weitere InformationenDie folgenden Dateien stehen im Microsoft Download Center zum Download zur Verfügung: Aotblob.exe (http://download.microsoft.com/download/vc60ent/sample3/1/win98/en-us/aotblob.exe) Weitere Informationen zum Download von Microsoft Support-Dateien finden Sie in folgendem Artikel der Microsoft Knowledge Base: 119591
(http://support.microsoft.com/kb/119591/EN-US/
)
So erhalten Sie Dateien vom Microsoft Support im Internet Microsoft hat diese Datei auf Viren überprüft. Microsoft hat dazu die neueste Software zur Virenerkennung verwendet, die zum Zeitpunkt der Bereitstellung verfügbar war. Die Datei befindet sich auf Servern mit verstärkter Sicherheit, wodurch nicht autorisierte Änderungen an der Datei weitestgehend verhindert werden. Lesen von BLOB-Daten mithilfe der ATL OLE DB-ConsumervorlagenDer ATL OLE DB-Consumer-Vorlage Assistent erstellt eine voll funktionsfähige lesen-nur Klasse, die ein long binary (BLOB) Datenbankfeld liest. Wenn Sie in das Feld long binary schreiben möchten, müssen Sie Änderungen auf die Assistenten-generierten Klasse vornehmen.In einer vom Assistenten generierten OLE DB Consumerklasse füllt der Provider automatisch alle BLOB-Feld-Membervariablen mit einem Zeiger ISequentialStream für die aktuelle Zeile. Um Daten aus dem BLOB-Feld zu lesen, rufen Sie die Read-Methode der die ISequentialStream-Schnittstelle in einer Schleife, bis keine Daten mehr vom OLE DB-Provider gesendet werden. Beachten Sie, dass die meisten Anbieter nicht Sie mit der gesamte Länge der Daten vor dem Lesen der Daten bereitstellen, so müssen Sie einen Puffer, dynamisch, um die Daten enthalten, beim Lesen erstellen. Schreiben von BLOB-Daten mithilfe der ATL OLE DB-ConsumervorlagenUm in ein BLOB-Feld zu schreiben, müssen Sie Version den ISequentialStream-Zeiger, die Sie von den OLE DB-Anbieter bereitgestellt wurden und ersetzen es durch einen ISequentialStream-Zeiger, den Sie implementieren. Der Anbieter ruft dann ISequentialStream:: Read für den Schnittstellenzeiger, bis keine weitere Bytes zurückgegeben werden. In einer Weise kehrt die Rolle des der Consumer und Anbieter. Der Consumer stellt den ISequentialStream-Zeiger, und der Anbieter ruft ISequentialStream:: Read. Beachten Sie, dass bestimmte OLE DB-Provider erforderlich, dass Sie vorab angeben, wie viele Bytes beim Schreiben von BLOB-Daten in das Feld "BLOB" stehen. Mit beliebig viele Anbieter wie möglich arbeiten möchten, enthält das Beispiel die Länge Informationen an dem Anbieter in jedem Fall.Um das Lesen und Schreiben von BLOB-Daten mit OLE DB zu vereinfachen, ist das AOTBLOB-Beispiel eine Hilfsklasse CISSHelper aufgerufen. Die CISSHelper-Klasse implementiert die gesamte ISequentialStream-Schnittstelle. Die Klasse hat auch den integrierten Puffer zum Speichern und extrahieren die BLOB-Daten verwendet wird. Beachten Sie, dass die CISSHelper selbst zerstören nicht, wenn seine Veröffentlichung Anzahl auf NULL, eine typische COM-Schnittstelle ähnelt fällt. Die AddRef und Release verbleiben in, der Provider aufgerufen werden, jedoch in diesem Beispiel verwendet einen Stapel zugewiesene Objekt und der C++-Destruktor zum Bereinigen des Objekts. Um Schreiben in ein BLOB-Feld zu ermöglichen, muss die ändern Sie das ATL-OLE DB-Consumer-Assistenten generierte Bindung Makro und Unterstützung für ein Feld Länge und Status Indikator als unten hinzufügen: Keine weiteren Änderungen an den vom Assistenten generierten Vorlagen sind erforderlich. Zum Lesen aus Feld BLOB mit einer geänderten (Länge und Status hinzugefügt) Consumer Vorlage-Klasse, befolgen Sie diese grundlegenden Formel:
Die Informationen in diesem Artikel beziehen sich auf:
Maschinell übersetzter ArtikelWichtig: 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: 190958
(http://support.microsoft.com/kb/190958/en-us/
)
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.
| Weitere Ressourcen Weitere SupportseitenCommunitySPRACHE AUSWÄHLEN |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Zum Anfang