概述
目前,人们对于图像数据、大文本数据的存取,需求越来越频繁。在很多的实际系统中都要求对这些数据进行存取及处理。例如公安部门对居民身份的管理系统,它需要对居民的照片及他们的详细信息进行存取、管理,以供对其进行身份验证,出入境验证等等。同时对于医院的管理系统来说也同样重要。在医院中病人的X光片,CT片都需要存取起来,为远程诊断病人提供了重要的依据,同时也为病人病情提供了查询资料。对这些数据我们可统称为BLOB数据类型,而对这种数据的存取方法随着编程语言及数据库的变化而有所不同。因此对BLOB数据类型的存取有着很重大的意义。在现在的很多系统中有着广泛的应用。在某些系统中已经得到了应用,随着计算机的广泛使用和发展,它的应用发展前景是广阔的。1
BLOB数据类型简介在信息处理过程中有一类规模较大而又可分割的数据,如较长的备注,详细的说明,数字照片,图像,声音,以及大量测量数据等。这些特殊的数据称为大数据块,又称为二进制大对象,该类型可以保存的字符串长度在255一65535字节内。实际上,在一些数据库系统中并不将其称之为BLOB字段,如Access中的OLE对象和备注类型, VFP中的MEMO类型, Oracle中的LONG BINARY类型、Sybase中的LONG VARCHAR, SQL Server中的IMAGE等等,但从广义上讲,它们都属于BLOB类型。我们可以把BLOB区别为三种形式:声像数据、二进制数据和大文本数据。因此,最常见的应用就是存储图形、声音等对象,此外大型的二进制对象、OLE对象也可以通过BLOB类型存入数据库,如果文本对象过大,超出了文本类型的规定长度,则必须用BLOB字段进行存储。我们在经常使用的编程环境中并不能直接支持BLOB字段,因此需要调用相应的函数完成BLOB的使用。1
举例PB中的BLOB类型数据的存取PB中实现BLOB类型数据的入库和查询,主要要用到两条特殊的SQL命令一UPDATEBLOB和SELECTBLOB,首先定位要进行操作的记录,然后使用UPDATEBLOB命令就可以将BLOB类型变量中存放的数据传递给数据库,而使用SELECIBLOB则是将指定记录中的大字段数据传递给BLOB变量。如果我们使用这两条命令而不打算使用OLE,同时还必须满足下列条件:
(1)必须在数据库中定义有与BLOB数据类型相等的数据类型(如在Watcom中的Long Varchar和Long Binary,在SQL Serve:中的Image,在Oracle中的long raw等)。
(2)每一个定义有BLOB字段的表必须有主键。
(3) BLOB列必须允许为空。
(4)打算写入BLOB数据的这一条记录必须已经输入数据,也就是只能使用UPDATE的方式写人BLOB数据。
(5) SQL SERVER的用户必须在使用BLOB功能前将AU-TOCOMMIT设置为TRUE,在BLOB功能结束后可再恢复回FALSE状态。可是有关BLOB的功能却不能同其它操作在同一个事物之中。
如果使用BLOB类型变量获取外界文件的数据内容,还必须借助于PB提供的可视化OLE控制对象,通过它可以将指定的文件内容显示成相应的对象(如BMP图片),双击它就可以激活相应的OLE服务器应用程序,来编辑修改对象的内容,同时也可以读取对象的数据内容(利用OLE控件的ObjectData属性),给BLOB类型变量赋值。例如BMP图片,它将作为一个大字段存储在数据库中。如果选择Microsofr Access 2000作为后台数据库,它的字段类型中包含“OLE对象”类型,如果选择MSSQL Server作为数据库服务器,可以使用TEXT或IMAGE类型字段存放大字段数据。这样就为管理多媒体数据、大文件和图片根供了支持。1