2009-06-11 9 views
1

Beim Abrufen von Daten aus einer Oracle-Datenbank, die BLOB-Felder (Office-DOC-Dateien usw.) enthält, muss ich etwas tun, um es über Webdienste zu senden?Webservice: BLOB-Feld

Es wird wie eine Zeichenfolge gesendet und ich versuche, die Zeichenfolge in ein Array von Bytes zu konvertieren und es in eine Datei zu schreiben, clientseitig die DOC-Datei neu zu erstellen.

Was ist der richtige Ansatz?

+0

Verwenden Sie WCF oder traditionelle SOAP? –

+0

Traditionelle SOAP – pistacchio

Antwort

2

Es ist nicht klar aus der Frage, aber es klingt wie Sie haben die Daten aus der Datenbank, und jetzt müssen Sie es auf einem Web-Service verfügbar machen. In Bezug auf SOAP usw. kann dies so einfach sein wie entweder ein byte[] zurückgeben oder ein byte[] auf einem DTO freilegen. Wenn das Feld groß ist, sollten Sie MTOM (WSE3) und/oder die Web-Komprimierung berücksichtigen.

Also: Wie stellt Oracle Ihnen das BLOB zur Verfügung? Wenn es kein byte[] ist, ist es vielleicht so etwas wie LINQs Binary Klasse, die einen gekapselten Zugriff auf die Daten bietet (ToArray() in diesem Fall). Wenn es eine string aussetzt, würde ich erraten, dass es Base-64 codiert ist; Sie könnten versuchen, Convert.FromBase64String auszuführen.

1

Sie müssen Base64 den Byte-Stream codieren.