BLOB to MS Word via ASP/VBScript
am 31.10.2007 17:43:07 von s.pastorizaI've been researching this for two days without little success. I have
an ASP that accesses an Oracle BLOB to extract MS Word documents
(later to include excel, power point, pdf, and text). The document is
stored there via Rational ClearCase.
I'm able to access the data in the BLOB, but when I try to display it,
all I get is the garbage-looking word format inside MS Word (as it
would look if displayed in notepad or the browser itself). Any ideas,
suggestions, pointers? I've tried several approaches with different
types of errors (I'm new to ASPs and VBScript). For instance, when I
try using ADODB.Stream, I can't seem to be able to write a file (to
confirm I was opening the blob properly). The chosen directory does
have open write permissions.
set mstream = Server.CreateObject("ADODB.Stream")
mstream.Type = 1 'adTypeBinary
mstream.Open
mstream.Write rs("data")
mstream.SaveToFile "c:\test.doc", 2 'adSaveCreateOveWrite , also tried
1 for new file
'Response.BinaryWrite mstream.Read ' failes with type mismatch
The most "successful" code is below. (There may be typos since I'm
working on a separate test network and had to manually type the code
here for posting. :-p)
Using:
ASP with VBScript
IIS v??? (SysAdmin unavailable!)
IE v5.5
Oracle 10 (OraOLEDB.Oracle since MSDAORA.1 was not returning
anything)
ADODB.Connection
<%
dbid = request.QueryString("dbid")
Dim rs, sql, conn
'Clear existing HTTP header information
Reponse.expires = 0
Response.Buffer = TRUE
Reponse.Clear
set conn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
conn.Open "Provider=OraOLEDB.Oracle;Data Source=oratest.rfc.net; User
id=***;Password=***;"
Reponse.ContentType = "application/msword"
sql = "SELECT data FROM ATTACHMENTS_BLOB where ENTITY_DBID = '" & dbid
"'"
rs.open sql, conn
Reponse.BinaryWrite rs("data") 'same results with .Value
rs.close
conn.close
%>