问题:
数据库与照片/图片/文件的关系如何处理? 也就是,比如有照片若干,怎样能在数据库中存储并显示?
方法一:
把照片放进数据库,照片的格式最好是bmp,这样就可以在窗体上显示出来,不过这样数据库的体积会暴增。 详细的使用方法请参考Access帮助中的 PictureData 属性(本文末尾有相关帮助)。 而且,你可以直接用 commdlg API 函数来给图像框赋值,然后直接读取某个图像框的 PICTUREDATA 并存储到某个 IMAGE 字段中。这样做的优点是显示、读取方便,缺点是如果图片精度高,占用的硬盘空间会爆大。 详细示例请参考: http://access911.net/down/eg/OLEfieldAndPictureData.rar (46KB)
方法二:
设一个OLE字段,然后插入对象就行了(对着字段单击右键)。但是要注意的是,用上述方法加入数据库的图片只能以手动方式保存,需要用程序读取的时候会碰到存储在ole字段中二进制数据与源文件不符的情况。主要是因为ole引擎在图片的前面加了一段信息给他自己用。 请参考: http://access911.net/index.asp?board=4&mode=3&recordid=75FAB21E12DC
方法三:
将图片文件以二进制方式存储在数据库中,使用时调用。详细情况请参考:
下列例程就是采用这种方法,在显示的时候把长二进制数据保存为临时文件用于显示 http://access911.net/down/photo.rar (size=308K)
方法四:
不把照片放入数据库,只把照片的路径保存到数据库中,动态加载,这样可以支持很多种图片格式。作法是在窗体上放一个图像控件,然后根据员工编号或别的有关联的字段去找出路径,用以下语句来加载图像: 图像1.Picture =路径名 路径名必须包括图象文件名。 详细情况你可以参考 access xp 的示例 northwind.mdb 中的雇员窗体 你也可以参考:http://access911.net/down/eg/LinkPicture.rar (61.1KB)
方法五:
在 ACCESS 2007 文件格式中,可以直接将图片存储到“附件”的字段中。 附件类型与OLE类型的主要几个区别是: “附件”字段不用创建原始文件的位图图像; 附件支持自动压缩一些格式的文件; 不是所有文件都能存储到附件字段中,比如EXE就不行。 操作方法除了手动,可以用 DAO的Recordset.Fields("FileData").LoadFromFile() SaveToFile 来实现。