WEB开发网
开发学院数据库MSSQL Server SQL Server:存储图片和BLOB文件(四) 阅读

SQL Server:存储图片和BLOB文件(四)

 2008-04-14 09:54:34 来源:WEB开发网   
核心提示: 测试该网页,对FileInfo表使用SELECT语句来选择一个对象;结果将返回如下图所示的行:请查阅本系列的第三篇文章,SQL Server:存储图片和BLOB文件(四)(4),会有关于onclick存储过程代码的详细解释,在那篇文章中也使用了相同的SQL连接和指令对象,实际应用当中,必须

测试该网页,对FileInfo表使用SELECT语句来选择一个对象;结果将返回如下图所示的行:

SQL Server:存储图片和BLOB文件(四)

请查阅本系列的第三篇文章,会有关于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数据库。

上一页  1 2 3 4 

Tags:SQL Server 存储

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接