原文 Display Database Image using MS SQL Server 2008 Reporting Services
With the new release of MS SQL Server 2008 Reporting Services has introduced a new feature that will help report developers (Business Intelligence BI professionals) to display images stored in database tables.
Since Microsoft SQL Server Reporting Services is gaining power in covering the requirements of business intelligence developers day by day, it is gaining more acceptance from the BI professionals.
For building a Microsoft Reporting Services solution to display database image or display image from database, we will first create sql database image table and insert images into the sql database for populating table with sample data.
Of course you should either create a new MS Reporting Services solution or open an existing MS Reporting Services solution and add reporting services report to this solution.
Prepare SQL Database and Populate with Sample Images in order to use in Reporing Services Report
First of all by executing the below t-sql Create Table command sql database administrators can create the database table in which sql developers will store images or image files in binary format in avarbinary(max) data type column.
CREATE TABLE DBFiles (
id int IDENTITY(1,1) NOT NULL,
fname nvarchar(1000) NOT NULL,
[file] varbinary(max)
)
Save Image in SQL Database in Binary Format
After we have created the sql database table to store the image files, now we can begin inserting images into the newly created sql database table.
You can also refer to SQL tutorial Save Image to Database Table in SQL Server for an other example.
INSERT INTO DBFiles(fname, [file])
SELECT 'Reporting-Services-2008-enriched-visualization-gadgets.jpg', * FROM OPENROWSET(
BULK N'C:\Reporting-Services-2008-enriched-visualization-gadgets.jpg',
SINGLE_BLOB
) rs;
INSERT INTO DBFiles(fname, [file])
SELECT 'what-is-new-with-SQL-Server-2008.jpg', * FROM OPENROWSET(
BULK N'C:\what-is-new-with-SQL-Server-2008.jpg',
SINGLE_BLOB
) rs;
You can download the sample image files photos I've taken during TechEd Developers 2007 related withMS SQL Server 2008 and MS SQL Server Reporting Services 2008 from the following links :
Reporting Services 2008 enriched visualization gadgets
What is new with SQL Server 2008
Let's see how images we have inserted into the sql table is seen when we execute a SELECT statement.
SELECT * FROM Files
Now we have created our sample sql table and populate the image table with sample image files.
We can now create our MS SQL Server Reporting Services 2008 report which will display the image files stored in the SQL Server database table.
Build SQL Reporting Services DataSet for Sample Report
First of all, we will create a dataset for reading data from SQL Server database image table.
We will use this dataset for databinding to reporting services table control and image control within the table cells for each row in the sql image table.
The sql query for the dataset is : SELECT * FROM DBFiles
This t-sql query will supply the sql data in binary format which we will display using Reporting Services.
Design Reporting Services Report in order to Display Database Image
After the dataset of the SQL Reporting Services report is prepared, now we can switch to the design view.
Place a table onto the Design surface of the SSSRS 2008 report.
Then set the DataSetName property of the new Tablix component to the dataset we have created for this sample report.
Then set field properties or the columns of the report design view tablix component as you wish.
Select the Reporting Services image component from the Toolbox and drag and drop into an emptytablix column.
This action will trigger the Reporting Services Image Properties Wizard.
You can later alter the properties of the image cell by a click on the image properties menu item on the context menu of the image cell.
Set the image properties as follows :
1) Set the image source as database, since we are selecting the image in binary format from database using reporting services dataset.
2) When database is chosen as the source of the image, you will select the field name as [file] field of the dataset in the Use this field dropdown list.
3) Also as the last step select the MIME type as image/jpeg (or which is approtiate for your case)
Resize Database Image and Size Properties of the SQL Database Image
You can also set the size properties of the database image and image component within the tablixcomponent by displaying the image properties and navigating to the Size tab.
There you can select one of the following size properties for display database images.
Original size
Fit to size
Fit proportional
Clip
I have selected fit proportional option which will resize image to fit inside the item while maintaining the aspect ratio.
Display Database Image on a SQL Server Reporting Services Report
After we have finished developing the MS SQL Server 2008 Reporting Services report, if you switch to the preview tab we can see the images stores in sql table on our sample SSRS report.