SQL Server:存储图像和BLOB文件(三)
作者: cyw, 出处:IT专家网, 责任编辑: 李书琴,
2008-03-13 03:04
SQL Server:存储图像和BLOB文件(三)要集中讨论了VARBINARY(MAX)数据类型。本文第一部分的代码例子将图像加载到数据库,然后通过使用aspx页面对该图像进行检索和显示。本文将创建一个基于网络的应用程序用来将图像插入到SQL Server里。
【IT专家网独家】
内容提要
在本系列的前面的文章SQL Server:存储图像和BLOB文件(一)和SQL Server:存储图像和BLOB文件(二)中,对BLOB进行了定义,并阐明了在什么情况下将这些文件存储在SQL Server内部而不存在文件系统中。此外,还通过举例介绍了VARBINARIES的几种不同数据类型,包括本文要集中讨论了VARBINARY(MAX)数据类型。本文第一部分的代码例子将图像加载到数据库,然后通过使用aspx页面对该图像进行检索和显示。本文将创建一个基于网络的应用程序用来将图像插入到SQL Server里。另外,将对前面两篇文章的例子进行扩展和改进。
SQL测试数据库
我们先来创建一个测试数据库和表用来存储图像,T-SQL脚本如下:
| USE master; GO CREATE DATABASE BLOBTest3; GO USE BLOBTest3; GO CREATE TABLE BLOBFromWeb ( BLOBData varbinary(max) ); GO |
以上脚本创建了一个包含一个表的数据库,该表只有一列。该测试列“BLOBData”以MAX为关键词,因此无论多大的二进制文件,它都可以存储。接下来,我们创建一个可以存储过程,网页可以使用该存储程序来上传图片:
| CREATE PROCEDURE WebUp ( @FileData varbinary(max) ) AS INSERT INTO BLOBFromWeb (BLOBData) VALUES (@FileData); |
该存储过程会将变量——图像“@FileData”传递到SQL Server。接下来的例子都将会使用存储过程而不再使用SQL语句了。使用存储过程的好处很多,例如可以增强安全性、防止SQL注入攻击、方便使用、提高运行性能等等。
从网页将图像插入到SQL Server
本例将使用Microsoft Visual Studio 2008来创建一个网页表单,该表单会要求终端用户浏览并上传文件到SQL Server。这个应用程序也可以在Visual Studio 2005中使用。首先,创建一个新网站和一个代码分离的aspx页面,如下图所示,拖动FileUpload和按钮控制到该表单上。
- 本文关键词:

