背景:我们有一个旧的(但业务关键型)SQL Server数据库,带有MS Access ADP前端; 这最初是从一系列Access数据库升级到SQL Server.
该数据库为我们的客户跟踪有害物质,并存储大量图像.这些图像从MS Access插入,并作为OLE对象放入数据库.
问题是:
除Access/Office之外的任何内容都是一种痛苦
有一个巨大的存储开销 - 大约10GB的图像占用600多GB的存储空间(!)
我的问题是:你会建议将这些膨胀的对象转换回简单的JPEG格式?一旦我们这样做,我们最终可以将我们的前端从Access迁移到一个简单的基于Web的系统,我们的备份时间将再次变得易于管理!
从这里获取*.bas文件http:http://stackoverflow.com/Content/img/wmd/ul.png//www.access-im-unternehmen.de/index1.php?BeitragID = 337&id = 300(不幸的是这是德国人).
它使用MS的GDI + lib(包含在Win标准安装中)来导入/导出Access OLE图像.
界面粗略翻译:
IsGDIPInstalled:检查GDI +的安装
InitGDIP:初始化GDI +.
ShutDownGDIP:放弃GDI +(导入并使用!)
LoadPictureGDIP:在StdPicture对象中加载pic(bmp,gif,jp(e)g,tif,png,wmf,emf和ico).
ResampleGDIP:将pic缩放到新维度,并在需要时进行锐化.
MakeThumbGDIP:制作缩略图并用颜色填充边框.
GetDimensionsGDIP:以像素为单位获取TSize-Struktur中的尺寸.
SavePicGDIPlus:将图片objekt保存为BMP,GIF,PNG或JPG(具有给定质量的jpg)
ArrayFromPicture:返回picutre的字节数组,将pic放入表的OLE字段
ArrayToPicture:创建包含图片的表的OLE字段的字节数组