By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
426,165 Members | 1,928 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 426,165 IT Pros & Developers. It's quick & easy.

Displaying image data from SQL...single/multipart tiff

P: n/a
CD
An application is logging faxes sent in SQL2000 image column type. I have
found code on the net but what it is doing is prompting to save to local
which is fine for single page image. Not good for multiple page faxes. I
have not been able to locate an example to load in the browser or how to
handle multiple image in the one column.

1) Ideally it would be nice to display back in the browser since some may be
multiple images. I am not a programmer but any help is appreciated..

<%
Dim strAttachID
strAttachID = Request.QueryString("AttachID")

Dim objConn, objRS, strSQL

adoconnectstr = "Driver={SQL
Server};database=faxmakerarchive;Server=XXXX;uid=X XXX;pwd=XXX;CommandTimeout
= 180"
set objCon = server.CreateObject("ADODB.Connection")
set objRec = server.CreateObject("ADODB.Recordset")

objCon.Open adoconnectstr
strSQL = "SELECT attdata FROM fm_faxout_att WHERE ID ='" & strAttachID &
"'"
objrec.Open strSQL, objCon

Response.ContentType = "image/tiff"
'Response.ContentType = "application/pdf"

Response.BinaryWrite objrec("attdata")

objrec.Close
Set objrec = Nothing
objCon.Close
Set objCon = Nothing
%>

TIA!!
Jul 7 '06 #1
Share this Question
Share on Google+
3 Replies


P: n/a

"CD" <mc****@hotmail.REMOVETHIS.comwrote in message
news:OG**************@TK2MSFTNGP05.phx.gbl...
An application is logging faxes sent in SQL2000 image column type. I have
found code on the net but what it is doing is prompting to save to local
which is fine for single page image. Not good for multiple page faxes. I
have not been able to locate an example to load in the browser or how to
handle multiple image in the one column.

1) Ideally it would be nice to display back in the browser since some may
be multiple images. I am not a programmer but any help is appreciated..

<%
Dim strAttachID
strAttachID = Request.QueryString("AttachID")

Dim objConn, objRS, strSQL

adoconnectstr = "Driver={SQL
Server};database=faxmakerarchive;Server=XXXX;uid=X XXX;pwd=XXX;CommandTimeout
= 180"
First, you should use the OLEDB provider instead of ODBC. (Use
"Provider=SQLOLEDB;" in place of "Driver=...")

set objCon = server.CreateObject("ADODB.Connection")
set objRec = server.CreateObject("ADODB.Recordset")

objCon.Open adoconnectstr
strSQL = "SELECT attdata FROM fm_faxout_att WHERE ID ='" & strAttachID &
"'"
objrec.Open strSQL, objCon

Response.ContentType = "image/tiff"
'Response.ContentType = "application/pdf"

Response.BinaryWrite objrec("attdata")
Does that work? I use this:

Set s = Server.CreateObject("ADODB.Stream")
s.Mode = 3
s.Type = 1
s.Open

// write the contents of the blob field to the stream
s.Write objrec("attdata").Value
s.Position = 0

Response.ContentType = "image/tiff"
Response.BinaryWrite s.Read()

You can reuse the stream, just close it and open it again to clear it.

As for multiple images in the same blob, that's a tough one... when you save
a multi-page blob to file, can the file be opened in a normal image viewer?
Maybe it's a single image that spans multiple logical pages? If not, and
multiple image file structures are written to the field back-to-back, you'll
have to separate the images by searching for the file header, signature, or
some other unique feature with which the start of each image might be
located. (It would be much easier to write each image to a different row,
and associate those rows that go together, if you have any control over that
end.)

Given you're able to get valid images out of it, one approach to displaying
multiple pages would be to generate an HTML document with multiple image
tags, one for each page.
-Mark
objrec.Close
Set objrec = Nothing
objCon.Close
Set objCon = Nothing
%>

TIA!!

Jul 9 '06 #2

P: n/a
CD
yes the above works. That is what i am guessing the application is placing
multi image in one row.

thanks for the reply

"Mark J. McGinty" <mm******@spamfromyou.comwrote in message
news:em**************@TK2MSFTNGP03.phx.gbl...
>
"CD" <mc****@hotmail.REMOVETHIS.comwrote in message
news:OG**************@TK2MSFTNGP05.phx.gbl...
>An application is logging faxes sent in SQL2000 image column type. I
have found code on the net but what it is doing is prompting to save to
local which is fine for single page image. Not good for multiple page
faxes. I have not been able to locate an example to load in the browser
or how to handle multiple image in the one column.

1) Ideally it would be nice to display back in the browser since some may
be multiple images. I am not a programmer but any help is appreciated..

<%
Dim strAttachID
strAttachID = Request.QueryString("AttachID")

Dim objConn, objRS, strSQL

adoconnectstr = "Driver={SQL
Server};database=faxmakerarchive;Server=XXXX;uid= XXXX;pwd=XXX;CommandTimeout
= 180"

First, you should use the OLEDB provider instead of ODBC. (Use
"Provider=SQLOLEDB;" in place of "Driver=...")

>set objCon = server.CreateObject("ADODB.Connection")
set objRec = server.CreateObject("ADODB.Recordset")

objCon.Open adoconnectstr
strSQL = "SELECT attdata FROM fm_faxout_att WHERE ID ='" & strAttachID &
"'"
objrec.Open strSQL, objCon

Response.ContentType = "image/tiff"
'Response.ContentType = "application/pdf"

Response.BinaryWrite objrec("attdata")

Does that work? I use this:

Set s = Server.CreateObject("ADODB.Stream")
s.Mode = 3
s.Type = 1
s.Open

// write the contents of the blob field to the stream
s.Write objrec("attdata").Value
s.Position = 0

Response.ContentType = "image/tiff"
Response.BinaryWrite s.Read()

You can reuse the stream, just close it and open it again to clear it.

As for multiple images in the same blob, that's a tough one... when you
save a multi-page blob to file, can the file be opened in a normal image
viewer? Maybe it's a single image that spans multiple logical pages? If
not, and multiple image file structures are written to the field
back-to-back, you'll have to separate the images by searching for the file
header, signature, or some other unique feature with which the start of
each image might be located. (It would be much easier to write each image
to a different row, and associate those rows that go together, if you have
any control over that end.)

Given you're able to get valid images out of it, one approach to
displaying multiple pages would be to generate an HTML document with
multiple image tags, one for each page.
-Mark
> objrec.Close
Set objrec = Nothing
objCon.Close
Set objCon = Nothing
%>

TIA!!


Jul 10 '06 #3

P: n/a
CD
yes the above works. That is what i am guessing the application is placing
multi image in one row.

thanks for the reply

"Mark J. McGinty" <mm******@spamfromyou.comwrote in message
news:em**************@TK2MSFTNGP03.phx.gbl...
>
"CD" <mc****@hotmail.REMOVETHIS.comwrote in message
news:OG**************@TK2MSFTNGP05.phx.gbl...
>An application is logging faxes sent in SQL2000 image column type. I
have found code on the net but what it is doing is prompting to save to
local which is fine for single page image. Not good for multiple page
faxes. I have not been able to locate an example to load in the browser
or how to handle multiple image in the one column.

1) Ideally it would be nice to display back in the browser since some may
be multiple images. I am not a programmer but any help is appreciated..

<%
Dim strAttachID
strAttachID = Request.QueryString("AttachID")

Dim objConn, objRS, strSQL

adoconnectstr = "Driver={SQL
Server};database=faxmakerarchive;Server=XXXX;uid= XXXX;pwd=XXX;CommandTimeout
= 180"

First, you should use the OLEDB provider instead of ODBC. (Use
"Provider=SQLOLEDB;" in place of "Driver=...")

>set objCon = server.CreateObject("ADODB.Connection")
set objRec = server.CreateObject("ADODB.Recordset")

objCon.Open adoconnectstr
strSQL = "SELECT attdata FROM fm_faxout_att WHERE ID ='" & strAttachID &
"'"
objrec.Open strSQL, objCon

Response.ContentType = "image/tiff"
'Response.ContentType = "application/pdf"

Response.BinaryWrite objrec("attdata")

Does that work? I use this:

Set s = Server.CreateObject("ADODB.Stream")
s.Mode = 3
s.Type = 1
s.Open

// write the contents of the blob field to the stream
s.Write objrec("attdata").Value
s.Position = 0

Response.ContentType = "image/tiff"
Response.BinaryWrite s.Read()

You can reuse the stream, just close it and open it again to clear it.

As for multiple images in the same blob, that's a tough one... when you
save a multi-page blob to file, can the file be opened in a normal image
viewer? Maybe it's a single image that spans multiple logical pages? If
not, and multiple image file structures are written to the field
back-to-back, you'll have to separate the images by searching for the file
header, signature, or some other unique feature with which the start of
each image might be located. (It would be much easier to write each image
to a different row, and associate those rows that go together, if you have
any control over that end.)

Given you're able to get valid images out of it, one approach to
displaying multiple pages would be to generate an HTML document with
multiple image tags, one for each page.
-Mark
> objrec.Close
Set objrec = Nothing
objCon.Close
Set objCon = Nothing
%>

TIA!!


Jul 13 '06 #4

This discussion thread is closed

Replies have been disabled for this discussion.