易于管理
当
BLOB与其他数据一起存储在数据库中时,
BLOB和表格是数据一起备份和恢复。这样就降低了表格数据与
BLOB数据不同步的机会,而且降低了其他用户无意中删除了文件系统中
BLOB数据位置的路径和风险。另外,将数据存储在数据库中
BLOB和其他数据的插入、更新和删除都在同一个事务中实现。这样就确保了数据的一致性和文件与数据库之间的一致性。还有一点好处是不需要为文件系统中的文件单独设置安全性。
可伸缩性
尽管文件系统被设计为能够处理大量不同大小的对象,但是文件系统不能对大量小文件进行优化。在这种情况下,数据库系统可以进行优化。
可用性
数据库具有比文件系统更多的可用性。数据库复制允许在分布式环境中复制、分配和潜在的修改数据。在主系统失效的情况下,日志转移提供了保留数据库备用副本的方法。
当然,在某些情况下,将图片存储在文件系统中将是更好的选择:
(
1)使用图片的应用程序需要数据流性能,例如实时的视频重现。
(
2)象
Microsoft PhotoDraw或者
Adobe Photoshop这样的应用程序经常访问
BLOB,这些应用程序只知道怎样访问文件。
(
3)需要使用一些
NTFS文件系统中的特殊功能,例如远程存储。
二、 存储图像数据的方法
1
建立具有
image宇段的
SQL Server数据库
当需要在
SQL Server数据库中存储图像数据时,首先应建立包含
image数据类型字段的数据库关系表。
SQL Server数据库平台支持的数据类型中,
image数据类型主要用于存储图像数据等大段的二进制数据。
SQL Server 7.0之后的版本,
image类型可存储
2GB的数据。
2
使用
Remote Data控件建立与数据库的连接
Remote Data
控件是在
Visual Basic应用程序中用来获取远程数据的控件。它在.远程数据对象
(RDO)和数据绑定控件之间提供了接口,只要给它提供有关数据存储的位置、获取的数据和一些接口控制,就可以连接到数据库,实现对数据库的基本操作。
使用
Remote Data控件建立与远程数据库的连接步骤如下:
1
.在
Visual Basic的窗体中加入一个
Remote Data控件。,
2
.在
Remote Data控件
DataSourceName属性的下拉列表中选择一个
ODBC数据源。例如
pubs。
3
.在
Remote Data控件的
SQL属性中输入
SQL查询语句。例如,
Select * from pub_info。
2.3
绑定
OLE和
Remote Data控件实现图像数据的存储与编辑
OLE
是允许应用程序相互之间交换和显示数据的一项技术,使用
OLE,可以从支持
OLE技术的任何应用程序中读取信息,也可以在任何支持
OLE的程序中显示和编辑它。在
Visual Basic中,可利用
OLE容器控件与
Remote Data控件的绑定,来实现显示、存储和编辑
SQL Serve数据库中的
image类型数据。
1.
显示
SQL Serve数据库
image类型字段的图像数据
具体步骤如下:
(1)
在加入了
Remote Data控件的
Visual Basic的窗体中,添加一个
OLE容器控件。创建
OLE容器控件时,会出现
“插入对象
’:对话框,此时点击
“取消
”按钮,不必为该容器指定对象。
(2)
将
OLE容器控件的
DataSource属性设置为
Remote Data控件的名字,实现控件的绑定。
(3)
在
OLE容器控件。
DataField属性的下拉列表中选择要显示的字段名。例如,
logo。
(4)
运行应用程序。对于包含
image数据类型的
logo字段的数据将在
OLE容器控件中显示一幅图像。
2.
在
SQL Sever数据库
image类型字段中添加存储图像数据
具体步骤如下:
(1)
将
Remote Data控件的
EOFAction属性设置为
rdAddNew,实现数据库的数据添加功能。
(2)
在
Visual Baisic的窗体中添加一个
CommandButton控件,并编写图像文件嵌入
OLE容器控件的程序代码。例如:
Private Sub Command_Click()
OLEl.CreateEmbed“c
:\图片.
bmp”
End Sub
(3)
运行应用程序,点击
Remote Data控件的记录指示按钮,移动到新的记录,然后点击
CommandButton控件按钮,实现图像数据的添加入库操作。
3.
编辑
SQL Serve数据库
image数据类型字段的图像数据
具体步骤如下:
(1)
在
Visual Basic的窗体中添加一个
CommandButton控件,编写对
OLE对象的编辑程序代码。例如:
Private Sub Command2--_Click()
OLEl.DoVerb VbOLEOpen
End Sub
(2)
运行应用程序,点击
Remote Data控件的记录指示按钮,选择需要编辑的图像,然后点击
CommandButton控件按钮,在分隔的应用程序窗口打开对象,进行图像的编辑操作。
4
、图像文件自动入库方式的实现
在数据库的实际应用中,经常需要将图像文件批量存储,以提高数据入库操作的自动化程度。对于图像文件批量存储,在程序代码的编写中,可充分利用
OLE容器控件与
RemoteData控件的诸多属性和方法,加以实现。
具体步骤如下:
(1)
将
OLE和
RemoteData控件的
Visible属性设置成
False,使
OLE和
RemoteData控件不可视。
(2)
建立图像文件的批处理文件。
(3)
编写以下基本代码,实现批处理功能。
Private Sub Command3_Click()
Dim FileName As String
Open "c:
\
tesffile.
txt"ForlnputAs#1'打开批处理文件。
DoWhileNotEOF(1)'
循环至文件尾。
Input#l
,
FileName'读入图像文件名。
MSRDCl.Resultset.AddNew‘
结果集添加记录
OLEl.CreateEmbedFileName‘
嵌入图像文件
MSRDCl.Resultset.Update
Loop
Close #1
End Sub
(4)
运行应用程序。点击
CommandButton控件按钮,完成图像文件的自动入库。
五、结束语
随着
SQL Serve数据库管理系统功能的不断增强、性能的不断完善,将各类数据完全由数据库管理系统统一存储和管理,已成为技术发展的趋势。只有这样,
SQL Serve数据库管理系统的强大功能才能得到充分发挥,数据的安全性才能得到充分的保障,使得诸如数据库复制、数据的转移等许多工作,变得非常简单容易。