Showing posts with label ids. Show all posts
Showing posts with label ids. Show all posts

Wednesday, March 28, 2012

images, stream ids, etc

ok, I have finally made my mind about how I will be doing the displaying
images in my site when I am using soap access ... here is the thread I posted
before:
http://www.microsoft.com/sql/community/newsgroups/dgbrowser/en-us/default.mspx?&guid=&sloc=en-us&dg=microsoft.public.sqlserver.reportingsvcs&p=1&tid=9888dd27-6e44-4c0d-8293-4d3a6ae93860&mid=e8ede148-3266-4bd0-ba1c-4f65f4197643
as long as I understand stream ids are unique, so the way I am doing this is
as follows:
1) I have an aspx page to render my reports
2) I have a grid to display the parameters, which definition I grab
dinamically trough soap access ... which gives me nice things, like types,
valid values (which are translated to dropdownlists:P), default values,
dependencies, etc ...
3) Once the user clicks the view report button (there are others, as export,
...) and the parameters have been validated I get the report from Reporting
Services, indicating that the streamroot is a special page I will have to
display images, indicating in the query string the parameters values and
related stuff selected by the user ...
4) As I said I will have a page to display the images. Right at the moment
the user is accesing this page, it will make the call to the reporting
services, thus I wont be having the need to handle saving the images and then
deleting them.
5) I dont want that page to be asking for an image it has already handled,
which might in turn be an image that appears in the very same report several
times ... In order to do this I will be turning asp.net cache on in that
page, so asp.net will handle saving it temporarily ...
The Question:
Does that way of handling the image is good enough when talking about
performance? ...
in the mean time, I will be doing that image page, and testing all this ...
I would highly apreciate any comments on this ...Eglasius,
Did you have success with this? I have done nearly the exact same thing,
but have found a couple of problems with chart images.
I first wanted (and prefer) to allow the client browser to cache the entire
page so that as they drill through the report charts, they can easily go back
by using the browser's back button -- requiring no return to the server.
However, I found that the streamIDs are NOT unique in some cases. For
example, I have a pie chart that with one set of data has a stream id of
C_21_S. The user drills through this chart and the chart is now rendered
using different data which obviously produces a different looking chart.
BUT! -- the stream id is still C_21_S! The browser of course cached the last
version of the image so the report renders with the wrong chart.
I considered a couple of options:
1) Adding something unique to the streamroot in addition to the
not-so-unique streamid. Then, the client browser would consider the image
url unique even if the streamid is not. I guess I would have to generate a
guid to use in the stream root. Perhasps something like this:
"<StreamRoot>/Reports/Report/ImgProxy.aspx?guid=" & GetGuid()&
"&imageid=</StreamRoot>"
2) Second option would be to send HTTP headers to prevent caching of just
the image elements -- I think this is possible, but wanted to avoid it.
Thoughts anyone?
"eglasius" wrote:
> ok, I have finally made my mind about how I will be doing the displaying
> images in my site when I am using soap access ... here is the thread I posted
> before:
> http://www.microsoft.com/sql/community/newsgroups/dgbrowser/en-us/default.mspx?&guid=&sloc=en-us&dg=microsoft.public.sqlserver.reportingsvcs&p=1&tid=9888dd27-6e44-4c0d-8293-4d3a6ae93860&mid=e8ede148-3266-4bd0-ba1c-4f65f4197643
> as long as I understand stream ids are unique, so the way I am doing this is
> as follows:
> 1) I have an aspx page to render my reports
> 2) I have a grid to display the parameters, which definition I grab
> dinamically trough soap access ... which gives me nice things, like types,
> valid values (which are translated to dropdownlists:P), default values,
> dependencies, etc ...
> 3) Once the user clicks the view report button (there are others, as export,
> ...) and the parameters have been validated I get the report from Reporting
> Services, indicating that the streamroot is a special page I will have to
> display images, indicating in the query string the parameters values and
> related stuff selected by the user ...
> 4) As I said I will have a page to display the images. Right at the moment
> the user is accesing this page, it will make the call to the reporting
> services, thus I wont be having the need to handle saving the images and then
> deleting them.
> 5) I dont want that page to be asking for an image it has already handled,
> which might in turn be an image that appears in the very same report several
> times ... In order to do this I will be turning asp.net cache on in that
> page, so asp.net will handle saving it temporarily ...
> The Question:
> Does that way of handling the image is good enough when talking about
> performance? ...
> in the mean time, I will be doing that image page, and testing all this ...
> I would highly apreciate any comments on this ...|||Well, my case was a very particular one, since I wasnt using dynamic images
(it was a static logo) yet, but I did want the image to be grabbed from the
report. The solution I used also needed to be compatible in case I were to
use dynamic images.
The thing is so far it has worked well, but we are using any dynamic image.
Because of this, I have no clue if I would experience the very same problem
that is happening to you.
On the other hand, I do have to say that at the end I didn't have to turn
asp.net cache on for the image served, since the browser seems to ask for the
image only once regardless of configuration (what I was worried about was a
browser with the "every visit to the page" configuration turned on asking for
a 20 pages report and ending up getting the image 20 times, which at the end
didn't happen).
In your case I would check if the drilled down page is actually being asked
to asp.net (or it is coming from the cache), and if not using a guid sounds
reasonable. If you have any other "unique" value (that relates to drilling
down) you are already using at hand, you might as well use that one instead.
One thing that really grabbed my attention, is that you aren't including
which report or params in the stream root. Unless your report doesn't have
parameters, all of them are fixed or your are saving them in some middle
object, I don't seem to understand how your are doing it.
I say so, because of this:
reports.RenderStream(report, format, streamId, null, deviceInfo, parms, out
encoding, out mimeType);
when getting the image one sends the report + streamId+parms.
"David Swanson" wrote:
> Eglasius,
> Did you have success with this? I have done nearly the exact same thing,
> but have found a couple of problems with chart images.
> I first wanted (and prefer) to allow the client browser to cache the entire
> page so that as they drill through the report charts, they can easily go back
> by using the browser's back button -- requiring no return to the server.
> However, I found that the streamIDs are NOT unique in some cases. For
> example, I have a pie chart that with one set of data has a stream id of
> C_21_S. The user drills through this chart and the chart is now rendered
> using different data which obviously produces a different looking chart.
> BUT! -- the stream id is still C_21_S! The browser of course cached the last
> version of the image so the report renders with the wrong chart.
> I considered a couple of options:
> 1) Adding something unique to the streamroot in addition to the
> not-so-unique streamid. Then, the client browser would consider the image
> url unique even if the streamid is not. I guess I would have to generate a
> guid to use in the stream root. Perhasps something like this:
> "<StreamRoot>/Reports/Report/ImgProxy.aspx?guid=" & GetGuid()&
> "&imageid=</StreamRoot>"
> 2) Second option would be to send HTTP headers to prevent caching of just
> the image elements -- I think this is possible, but wanted to avoid it.
> Thoughts anyone?
> "eglasius" wrote:
> > ok, I have finally made my mind about how I will be doing the displaying
> > images in my site when I am using soap access ... here is the thread I posted
> > before:
> > http://www.microsoft.com/sql/community/newsgroups/dgbrowser/en-us/default.mspx?&guid=&sloc=en-us&dg=microsoft.public.sqlserver.reportingsvcs&p=1&tid=9888dd27-6e44-4c0d-8293-4d3a6ae93860&mid=e8ede148-3266-4bd0-ba1c-4f65f4197643
> >
> > as long as I understand stream ids are unique, so the way I am doing this is
> > as follows:
> > 1) I have an aspx page to render my reports
> > 2) I have a grid to display the parameters, which definition I grab
> > dinamically trough soap access ... which gives me nice things, like types,
> > valid values (which are translated to dropdownlists:P), default values,
> > dependencies, etc ...
> > 3) Once the user clicks the view report button (there are others, as export,
> > ...) and the parameters have been validated I get the report from Reporting
> > Services, indicating that the streamroot is a special page I will have to
> > display images, indicating in the query string the parameters values and
> > related stuff selected by the user ...
> > 4) As I said I will have a page to display the images. Right at the moment
> > the user is accesing this page, it will make the call to the reporting
> > services, thus I wont be having the need to handle saving the images and then
> > deleting them.
> > 5) I dont want that page to be asking for an image it has already handled,
> > which might in turn be an image that appears in the very same report several
> > times ... In order to do this I will be turning asp.net cache on in that
> > page, so asp.net will handle saving it temporarily ...
> >
> > The Question:
> > Does that way of handling the image is good enough when talking about
> > performance? ...
> >
> > in the mean time, I will be doing that image page, and testing all this ...
> > I would highly apreciate any comments on this ...|||Thanks for your prompt reply!
Yes, I was being lazy and store the report params in the user session. We
have a boat load of params that are used in a custom DPE and it was a
headache to format them all on the querystring, so I just keep the params
collection in the session and the imageproxy page gets it from there.
Unless someone from the MS team has a better idea, I think I will have to
include a guid. The other really odd thing is that the report has a pie
chart and a stacked bar chart. The pie chart always seems to use the same
stream id, but the stacked bar chart has always created a unique id --so far.
Can anyone from the MS Reporting Services team explain the behavior of how
the streamids are generated for the dynamic images produced by the chart
objects?
Much appreciated, David
"eglasius" wrote:
> Well, my case was a very particular one, since I wasnt using dynamic images
> (it was a static logo) yet, but I did want the image to be grabbed from the
> report. The solution I used also needed to be compatible in case I were to
> use dynamic images.
> The thing is so far it has worked well, but we are using any dynamic image.
> Because of this, I have no clue if I would experience the very same problem
> that is happening to you.
> On the other hand, I do have to say that at the end I didn't have to turn
> asp.net cache on for the image served, since the browser seems to ask for the
> image only once regardless of configuration (what I was worried about was a
> browser with the "every visit to the page" configuration turned on asking for
> a 20 pages report and ending up getting the image 20 times, which at the end
> didn't happen).
> In your case I would check if the drilled down page is actually being asked
> to asp.net (or it is coming from the cache), and if not using a guid sounds
> reasonable. If you have any other "unique" value (that relates to drilling
> down) you are already using at hand, you might as well use that one instead.
> One thing that really grabbed my attention, is that you aren't including
> which report or params in the stream root. Unless your report doesn't have
> parameters, all of them are fixed or your are saving them in some middle
> object, I don't seem to understand how your are doing it.
> I say so, because of this:
> reports.RenderStream(report, format, streamId, null, deviceInfo, parms, out
> encoding, out mimeType);
> when getting the image one sends the report + streamId+parms.
> "David Swanson" wrote:
> > Eglasius,
> >
> > Did you have success with this? I have done nearly the exact same thing,
> > but have found a couple of problems with chart images.
> >
> > I first wanted (and prefer) to allow the client browser to cache the entire
> > page so that as they drill through the report charts, they can easily go back
> > by using the browser's back button -- requiring no return to the server.
> >
> > However, I found that the streamIDs are NOT unique in some cases. For
> > example, I have a pie chart that with one set of data has a stream id of
> > C_21_S. The user drills through this chart and the chart is now rendered
> > using different data which obviously produces a different looking chart.
> > BUT! -- the stream id is still C_21_S! The browser of course cached the last
> > version of the image so the report renders with the wrong chart.
> >
> > I considered a couple of options:
> >
> > 1) Adding something unique to the streamroot in addition to the
> > not-so-unique streamid. Then, the client browser would consider the image
> > url unique even if the streamid is not. I guess I would have to generate a
> > guid to use in the stream root. Perhasps something like this:
> >
> > "<StreamRoot>/Reports/Report/ImgProxy.aspx?guid=" & GetGuid()&
> > "&imageid=</StreamRoot>"
> >
> > 2) Second option would be to send HTTP headers to prevent caching of just
> > the image elements -- I think this is possible, but wanted to avoid it.
> >
> > Thoughts anyone?
> >
> > "eglasius" wrote:
> >
> > > ok, I have finally made my mind about how I will be doing the displaying
> > > images in my site when I am using soap access ... here is the thread I posted
> > > before:
> > > http://www.microsoft.com/sql/community/newsgroups/dgbrowser/en-us/default.mspx?&guid=&sloc=en-us&dg=microsoft.public.sqlserver.reportingsvcs&p=1&tid=9888dd27-6e44-4c0d-8293-4d3a6ae93860&mid=e8ede148-3266-4bd0-ba1c-4f65f4197643
> > >
> > > as long as I understand stream ids are unique, so the way I am doing this is
> > > as follows:
> > > 1) I have an aspx page to render my reports
> > > 2) I have a grid to display the parameters, which definition I grab
> > > dinamically trough soap access ... which gives me nice things, like types,
> > > valid values (which are translated to dropdownlists:P), default values,
> > > dependencies, etc ...
> > > 3) Once the user clicks the view report button (there are others, as export,
> > > ...) and the parameters have been validated I get the report from Reporting
> > > Services, indicating that the streamroot is a special page I will have to
> > > display images, indicating in the query string the parameters values and
> > > related stuff selected by the user ...
> > > 4) As I said I will have a page to display the images. Right at the moment
> > > the user is accesing this page, it will make the call to the reporting
> > > services, thus I wont be having the need to handle saving the images and then
> > > deleting them.
> > > 5) I dont want that page to be asking for an image it has already handled,
> > > which might in turn be an image that appears in the very same report several
> > > times ... In order to do this I will be turning asp.net cache on in that
> > > page, so asp.net will handle saving it temporarily ...
> > >
> > > The Question:
> > > Does that way of handling the image is good enough when talking about
> > > performance? ...
> > >
> > > in the mean time, I will be doing that image page, and testing all this ...
> > > I would highly apreciate any comments on this ...|||FYI: I did add a guid and it works perfectly now. I still would like MS to
explain to the newsgroup how streamids are created and why they would not be
unique for a dynamic chart image. Seems like a bug to me.
"David Swanson" wrote:
> Thanks for your prompt reply!
> Yes, I was being lazy and store the report params in the user session. We
> have a boat load of params that are used in a custom DPE and it was a
> headache to format them all on the querystring, so I just keep the params
> collection in the session and the imageproxy page gets it from there.
> Unless someone from the MS team has a better idea, I think I will have to
> include a guid. The other really odd thing is that the report has a pie
> chart and a stacked bar chart. The pie chart always seems to use the same
> stream id, but the stacked bar chart has always created a unique id --so far.
>
> Can anyone from the MS Reporting Services team explain the behavior of how
> the streamids are generated for the dynamic images produced by the chart
> objects?
> Much appreciated, David
> "eglasius" wrote:
> > Well, my case was a very particular one, since I wasnt using dynamic images
> > (it was a static logo) yet, but I did want the image to be grabbed from the
> > report. The solution I used also needed to be compatible in case I were to
> > use dynamic images.
> >
> > The thing is so far it has worked well, but we are using any dynamic image.
> > Because of this, I have no clue if I would experience the very same problem
> > that is happening to you.
> >
> > On the other hand, I do have to say that at the end I didn't have to turn
> > asp.net cache on for the image served, since the browser seems to ask for the
> > image only once regardless of configuration (what I was worried about was a
> > browser with the "every visit to the page" configuration turned on asking for
> > a 20 pages report and ending up getting the image 20 times, which at the end
> > didn't happen).
> >
> > In your case I would check if the drilled down page is actually being asked
> > to asp.net (or it is coming from the cache), and if not using a guid sounds
> > reasonable. If you have any other "unique" value (that relates to drilling
> > down) you are already using at hand, you might as well use that one instead.
> >
> > One thing that really grabbed my attention, is that you aren't including
> > which report or params in the stream root. Unless your report doesn't have
> > parameters, all of them are fixed or your are saving them in some middle
> > object, I don't seem to understand how your are doing it.
> > I say so, because of this:
> > reports.RenderStream(report, format, streamId, null, deviceInfo, parms, out
> > encoding, out mimeType);
> > when getting the image one sends the report + streamId+parms.
> >
> > "David Swanson" wrote:
> >
> > > Eglasius,
> > >
> > > Did you have success with this? I have done nearly the exact same thing,
> > > but have found a couple of problems with chart images.
> > >
> > > I first wanted (and prefer) to allow the client browser to cache the entire
> > > page so that as they drill through the report charts, they can easily go back
> > > by using the browser's back button -- requiring no return to the server.
> > >
> > > However, I found that the streamIDs are NOT unique in some cases. For
> > > example, I have a pie chart that with one set of data has a stream id of
> > > C_21_S. The user drills through this chart and the chart is now rendered
> > > using different data which obviously produces a different looking chart.
> > > BUT! -- the stream id is still C_21_S! The browser of course cached the last
> > > version of the image so the report renders with the wrong chart.
> > >
> > > I considered a couple of options:
> > >
> > > 1) Adding something unique to the streamroot in addition to the
> > > not-so-unique streamid. Then, the client browser would consider the image
> > > url unique even if the streamid is not. I guess I would have to generate a
> > > guid to use in the stream root. Perhasps something like this:
> > >
> > > "<StreamRoot>/Reports/Report/ImgProxy.aspx?guid=" & GetGuid()&
> > > "&imageid=</StreamRoot>"
> > >
> > > 2) Second option would be to send HTTP headers to prevent caching of just
> > > the image elements -- I think this is possible, but wanted to avoid it.
> > >
> > > Thoughts anyone?
> > >
> > > "eglasius" wrote:
> > >
> > > > ok, I have finally made my mind about how I will be doing the displaying
> > > > images in my site when I am using soap access ... here is the thread I posted
> > > > before:
> > > > http://www.microsoft.com/sql/community/newsgroups/dgbrowser/en-us/default.mspx?&guid=&sloc=en-us&dg=microsoft.public.sqlserver.reportingsvcs&p=1&tid=9888dd27-6e44-4c0d-8293-4d3a6ae93860&mid=e8ede148-3266-4bd0-ba1c-4f65f4197643
> > > >
> > > > as long as I understand stream ids are unique, so the way I am doing this is
> > > > as follows:
> > > > 1) I have an aspx page to render my reports
> > > > 2) I have a grid to display the parameters, which definition I grab
> > > > dinamically trough soap access ... which gives me nice things, like types,
> > > > valid values (which are translated to dropdownlists:P), default values,
> > > > dependencies, etc ...
> > > > 3) Once the user clicks the view report button (there are others, as export,
> > > > ...) and the parameters have been validated I get the report from Reporting
> > > > Services, indicating that the streamroot is a special page I will have to
> > > > display images, indicating in the query string the parameters values and
> > > > related stuff selected by the user ...
> > > > 4) As I said I will have a page to display the images. Right at the moment
> > > > the user is accesing this page, it will make the call to the reporting
> > > > services, thus I wont be having the need to handle saving the images and then
> > > > deleting them.
> > > > 5) I dont want that page to be asking for an image it has already handled,
> > > > which might in turn be an image that appears in the very same report several
> > > > times ... In order to do this I will be turning asp.net cache on in that
> > > > page, so asp.net will handle saving it temporarily ...
> > > >
> > > > The Question:
> > > > Does that way of handling the image is good enough when talking about
> > > > performance? ...
> > > >
> > > > in the mean time, I will be doing that image page, and testing all this ...
> > > > I would highly apreciate any comments on this ...|||> > Yes, I was being lazy and store the report params in the user session. We
> > have a boat load of params that are used in a custom DPE and it was a
> > headache to format them all on the querystring, so I just keep the params
> > collection in the session and the imageproxy page gets it from there.
As long as the user doesn't open different reports at the same time (it
hardly should happen ...) and you don't have an incredibly large amount of
users, it is ok :)
I also wan't to know if it is a bug or a behavior by design (and why) ...
"David Swanson" wrote:
> FYI: I did add a guid and it works perfectly now. I still would like MS to
> explain to the newsgroup how streamids are created and why they would not be
> unique for a dynamic chart image. Seems like a bug to me.
> "David Swanson" wrote:
> > Thanks for your prompt reply!
> >
> > Yes, I was being lazy and store the report params in the user session. We
> > have a boat load of params that are used in a custom DPE and it was a
> > headache to format them all on the querystring, so I just keep the params
> > collection in the session and the imageproxy page gets it from there.
> >
> > Unless someone from the MS team has a better idea, I think I will have to
> > include a guid. The other really odd thing is that the report has a pie
> > chart and a stacked bar chart. The pie chart always seems to use the same
> > stream id, but the stacked bar chart has always created a unique id --so far.
> >
> >
> > Can anyone from the MS Reporting Services team explain the behavior of how
> > the streamids are generated for the dynamic images produced by the chart
> > objects?
> >
> > Much appreciated, David
> >
> > "eglasius" wrote:
> >
> > > Well, my case was a very particular one, since I wasnt using dynamic images
> > > (it was a static logo) yet, but I did want the image to be grabbed from the
> > > report. The solution I used also needed to be compatible in case I were to
> > > use dynamic images.
> > >
> > > The thing is so far it has worked well, but we are using any dynamic image.
> > > Because of this, I have no clue if I would experience the very same problem
> > > that is happening to you.
> > >
> > > On the other hand, I do have to say that at the end I didn't have to turn
> > > asp.net cache on for the image served, since the browser seems to ask for the
> > > image only once regardless of configuration (what I was worried about was a
> > > browser with the "every visit to the page" configuration turned on asking for
> > > a 20 pages report and ending up getting the image 20 times, which at the end
> > > didn't happen).
> > >
> > > In your case I would check if the drilled down page is actually being asked
> > > to asp.net (or it is coming from the cache), and if not using a guid sounds
> > > reasonable. If you have any other "unique" value (that relates to drilling
> > > down) you are already using at hand, you might as well use that one instead.
> > >
> > > One thing that really grabbed my attention, is that you aren't including
> > > which report or params in the stream root. Unless your report doesn't have
> > > parameters, all of them are fixed or your are saving them in some middle
> > > object, I don't seem to understand how your are doing it.
> > > I say so, because of this:
> > > reports.RenderStream(report, format, streamId, null, deviceInfo, parms, out
> > > encoding, out mimeType);
> > > when getting the image one sends the report + streamId+parms.
> > >
> > > "David Swanson" wrote:
> > >
> > > > Eglasius,
> > > >
> > > > Did you have success with this? I have done nearly the exact same thing,
> > > > but have found a couple of problems with chart images.
> > > >
> > > > I first wanted (and prefer) to allow the client browser to cache the entire
> > > > page so that as they drill through the report charts, they can easily go back
> > > > by using the browser's back button -- requiring no return to the server.
> > > >
> > > > However, I found that the streamIDs are NOT unique in some cases. For
> > > > example, I have a pie chart that with one set of data has a stream id of
> > > > C_21_S. The user drills through this chart and the chart is now rendered
> > > > using different data which obviously produces a different looking chart.
> > > > BUT! -- the stream id is still C_21_S! The browser of course cached the last
> > > > version of the image so the report renders with the wrong chart.
> > > >
> > > > I considered a couple of options:
> > > >
> > > > 1) Adding something unique to the streamroot in addition to the
> > > > not-so-unique streamid. Then, the client browser would consider the image
> > > > url unique even if the streamid is not. I guess I would have to generate a
> > > > guid to use in the stream root. Perhasps something like this:
> > > >
> > > > "<StreamRoot>/Reports/Report/ImgProxy.aspx?guid=" & GetGuid()&
> > > > "&imageid=</StreamRoot>"
> > > >
> > > > 2) Second option would be to send HTTP headers to prevent caching of just
> > > > the image elements -- I think this is possible, but wanted to avoid it.
> > > >
> > > > Thoughts anyone?
> > > >
> > > > "eglasius" wrote:
> > > >
> > > > > ok, I have finally made my mind about how I will be doing the displaying
> > > > > images in my site when I am using soap access ... here is the thread I posted
> > > > > before:
> > > > > http://www.microsoft.com/sql/community/newsgroups/dgbrowser/en-us/default.mspx?&guid=&sloc=en-us&dg=microsoft.public.sqlserver.reportingsvcs&p=1&tid=9888dd27-6e44-4c0d-8293-4d3a6ae93860&mid=e8ede148-3266-4bd0-ba1c-4f65f4197643
> > > > >
> > > > > as long as I understand stream ids are unique, so the way I am doing this is
> > > > > as follows:
> > > > > 1) I have an aspx page to render my reports
> > > > > 2) I have a grid to display the parameters, which definition I grab
> > > > > dinamically trough soap access ... which gives me nice things, like types,
> > > > > valid values (which are translated to dropdownlists:P), default values,
> > > > > dependencies, etc ...
> > > > > 3) Once the user clicks the view report button (there are others, as export,
> > > > > ...) and the parameters have been validated I get the report from Reporting
> > > > > Services, indicating that the streamroot is a special page I will have to
> > > > > display images, indicating in the query string the parameters values and
> > > > > related stuff selected by the user ...
> > > > > 4) As I said I will have a page to display the images. Right at the moment
> > > > > the user is accesing this page, it will make the call to the reporting
> > > > > services, thus I wont be having the need to handle saving the images and then
> > > > > deleting them.
> > > > > 5) I dont want that page to be asking for an image it has already handled,
> > > > > which might in turn be an image that appears in the very same report several
> > > > > times ... In order to do this I will be turning asp.net cache on in that
> > > > > page, so asp.net will handle saving it temporarily ...
> > > > >
> > > > > The Question:
> > > > > Does that way of handling the image is good enough when talking about
> > > > > performance? ...
> > > > >
> > > > > in the mean time, I will be doing that image page, and testing all this ...
> > > > > I would highly apreciate any comments on this ...|||thanks you guys!.. I have been having a similar problem.
Recently we went live with reporting services. We are showing some charts,
and everything works fine the first time you show a chart. Subsequent charts
all show the image from the first chart. Hitting ctrl-R gets rid of the
problem, but this is undesirable (users would be confused). I took your idea
about slapping a GUID of some sort to the streamroot so that each request the
browser gets the image from the server.
Thanks again you guys!
Happy new years!

Images From Sql Database

I have a database in sql server with a table containing a few images stored as binary data and there unique ids. From a Visual Basic.NET Application I want to use the crystal report to display 1 of the images based on the id that it is fed. How can I read and image from the sql database and display it in a Crystal Report? Any help offered is greatly appreciated.I've used a stored procedure to get the images from db and then add the blob field to the report. problem is that the wizard "enter parameter value" keeps prompting while you're going to drag the blob to your report. I still haven't find a solution for this problem.|||Just drag the blob column to report and go to preview mode and check if it is displaying the image|||I too have the same problem But in the case of Auto cad images(*.dwg)

I am saving the image in image field (SQL server) in binary format

Is there any solution for that?

Reply as much as earlier!|||What is the error you get?|||While adding the image field(SQL server) in crystal report,it doesn't showing any error

But

1.If the image format other than autocad(*.dwg) then it is showing the image as it is.

2.But in the case of autocad image it doesn't showing anything the field space would be blank.

If anyone guide me for this prob,please help me out

My project has been delayed because of this problem

Lingeswaran.r|||Hi all
I have some problem load image to Crytal Report 11

I have database from sql Server. The Columns Images after.
The column
Column name Data Type Length Allownulls
Picture varchar 50 *

After i save to database is

image\picture.jpg.

When i drag the column to Crystal Report 11 it have only is image\picture.jpg.
Can you help me ?
Display the picture.jpg is a picture
Thank you.|||Hi,
I had face the problem in Sql server with CrystalReports11 at Visual studio2005. By doing the following way you can solve the problem.

Let assume table "Item_t" having "ItemPicture'' column and its datatype is "Image'' and assume picture is stored in that table.

fecth the picture data to a datatable.

Let assume the picture is in dtItem & write the following method

private DataTable ConvertPicture(DataTable dtItem)
{
DataTable dtReturn = dtItem.Clone();

foreach (DataRow dRow in dtItem.Rows)
{
DataRow drRow = dtReturn.NewRow();

// Convert the picture into binary format

Byte[] bPictureInByte = (Byte[])dtItem.Row["ItemPicture''];
System.IO.MemoryStream mStream = new System.IO.MemoryStream(bPictureInByte ); // convert as stream
Bitmap pictureBimap= new Bitmap(mStream);//store in a Bitmap

// save the picture data in Local harddisk as .jpg file
pictureBimap.Save("C:\\temp\\Itempicture.Jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

//Read the same jpg Picture from your Local harddisk
System.IO.FileStream fs = new System.IO.FileStream("C:\\temp\\Itempicture.Jpg", System.IO.FileMode.Open);
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);

//convert to byte[] & save in your new data row
drRow = br.ReadBytes((int)br.BaseStream.Length);
br.Close();

//add the datarow to the datatable dtReturn;

dtReturn.Rows.add(drRow);

}

return dtReturn

}

now you passing the dtReturn data table to your .rpt file and print the Image.

Best wishes|||But now i don't want to Write a picture into the SQL Server
I only want write a link of it.
Example: image\picture_name.jpg
After that i load into Crytal Report.
How I can to do it ?
You can help me ?

If i write to sql server is no proplem.|||Hi all,
I want to display image in report but I can't. The following is what I do.
I create a report in C#.NET 2003, using CR XI. Data is stored in SQL Server 2005, and I store image as BLOB field. I design by drag and drop fields into report. In my code, I connect to database, get mydataset by executing a sql string, and then using rpt.SetDataSource(mydataset). All data in text field is ok but image field is empty.
Anybody help me, please.|||I know why I can't display image in report now. A simple reason is the aslias name of image field in sql statement and the image field name in my report are different.

But now I don't understand the reason why sometimes I can 't drag image field from tree view into report. Anybody know?