SQL Server:存储图片和BLOB文件(四)
2008-04-14 09:54:34 来源:WEB开发网测试该网页,对FileInfo表使用SELECT语句来选择一个对象;结果将返回如下图所示的行:
请查阅本系列的第三篇文章,会有关于onclick存储过程代码的详细解释,在那篇文章中也使用了相同的SQL连接和指令对象。这里,可以通过创建一个网页来从SQL Server数据库获取路径信息以便查看图像。
SQL Server 2008 的文件流数据类型(FILESTREAM)
以上这些方法在实施的过程中还会出现一些问题。首先,如果不是通过网页应用程序而是通过其他方法删除或添加文件的话,SQL Server就无法察觉,因此不能做到和文件系统同步。第二个就是备份问题。实施上述方法后,我们不仅需要备份SQL Server,还需要备份文件存储的目录路径。此外,对于这些文件的安全问题,SQL Server也无法控制。
SQL Server 2008提供了解决这些问题的方法,那就是采用新的FILESTREAM数据类型。FILESTREAM文件就和标准的MDF或LDF文件一样,是存放在Windows的NTFS分区中的,不过FILESTREAM文件是专门为存储二进制数据而设计的。用CREATEDATABASE命令来创建一个特殊的文件组,并将其标记为“流(stream)”。创建该数据库后,可以将表内的一个列指定为“VARBINARY(MAX) FILESTREAM”数据类型。想要从文件系统访问存储在FILESTREAM内的BLOB是不可行的。我们无法打开Windows文件浏览器并访问这些文件,这意味着其安全是由SQL Server数据库负责处理的。此外,可以对这些BLOB文件使用标准的插入、更新和删除指令进行操作。因此对于大型的BLOB文件或像视频流这样性能要求很高的BLOB文件,SQL Server现在就有了一个可行的办法来处理这种类型的文件了。
总结
SQL Server提供了多个方法来管理BLOB二进制数据文件,如SQL Server 2005中的VARBINARY (MAX),更老版本中的IMAGE数据类型、以及 SQL Server 2008中新的FILESTREAM选项。与标准的数据类型相比,要熟练运用这些数据类型需要稍微努把力了,不过使用的方法和使用的对象都还是比较简单易用的。需要留意,在上述的例子中并没有包括错误检查。实际应用当中,必须确保文件上传控件测试上传没有问题之后,再将数据传送到SQL Server数据库。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接