SQL Server:存储图像和BLOB文件(一)

http://tech.ddvip.com   2008年04月14日    社区交流

内容摘要:本文将和大家探讨在SQL Server中用来存储图像和声音文件等存储二进制大对象(BLOB)的数据类型和方法,包括在SQL Server 2000和SQL Server 2005中使用的遗留数据类型,以及在SQL Server 2008中引入的新的文件流(FILESTREAM)二进制类型。

  数据类型

  回到第一个例子,我们将要创建一个应用程序来存储各个产品的相关图片。因为这些文件都很小,所以我们会选择将它们直接存储在SQL Server里。在SQL Server 2000中,有两种不同的数据类型选择类群用来存储这些文件类型:二进制和图像(Image)。二进制类群包括三种不同的数据类型。第一种就是标准二进制数据类型Binary,但其要求固定的数据长度。对于上面的例子,由于我们的图片大小不等,所以我们需要使用varbinary数据类型,这里的“var”就是变量的意思。Varbinary数据类型的最大长度为8000字节。从SQL Server 2005开始,“varbinary(max)”也包含在二进制数据类型的类群当中了。其关键词MAX就表示大小不限。如果SQL Server的版本是2005以前的,而数据长度又超过8000字节的话,就可以使用图像数据类型进行存储了。这种数据类型的文件大小可变,最大可存储2GB的文件。虽然图像数据类型也包含在SQL Server 2005和2008中,但在这些版本下不应当使用这种类型。微软称,还保留图像数据类型是未来向下兼容之需,在将来某个时候就会将其舍弃。因此,本例中将使用二进制数据类型,这个类群的三种类型扼要重述如下:

  · Binary:文件大小固定,最大长度可达8000字节;

  · VarBinary(n): 文件大小可变,最大长度可达8000字节,(n指明最大文件长度);

  · VarBianry(max): 文件大小可变,不限最大长度。

  总结

  在本系列的下一篇文章当中,我们会继续探讨在SQL Server存储BLOB文件的问题,通过创建 Visual Studio应用程序来对SQL Server二进制数据类型进行读写操作。VarBinary(MAX)数据类型的使用技巧将在介绍SQL Server 2008新的文件流数据类型选项后进行探讨。

来源:IT专家网    作者:cyw    责编:豆豆技术应用

正在加载评论...