Office中国论坛/Access中国论坛
标题: 为什么我加了个几十K的图片做背景,数据库一下子大了好几M呢? [打印本页]
作者: lrawinx 时间: 2006-4-21 22:51
标题: 为什么我加了个几十K的图片做背景,数据库一下子大了好几M呢?
RT。。。谁能讲讲原因。。。
作者: 一点通 时间: 2006-4-21 22:56
这是ACCESS中的一个毛病,所以最好不要将图片放入数据库中
作者: lrawinx 时间: 2006-4-21 23:29
原来这样……thanks
作者: 情比金坚 时间: 2006-4-22 01:57
以下是引用一点通在2006-4-21 14:56:00的发言:
这是ACCESS中的一个毛病,所以最好不要将图片放入数据库中
用流技术可以克服这个缺陷
作者: lrawinx 时间: 2006-4-22 05:02
什么是流技术?
能否介绍下。。。
作者: franky_xhl 时间: 2006-4-22 07:33
我也想知道!
作者: 情比金坚 时间: 2006-4-22 08:29
就是把图片转化为二进制来存储,用的时候再释放出来,这样数据库可以存放很多图片而不会变大。
Stream 对象
表示二进制数据或文本的流。[img]mkMSITStore:\Program%20Files\Common%20Files\Microsoft%20Shared\OFFICE11\2052\ado210.chm::/htm/objstrea.gif[/img]
说明
在诸如文件系统或电子邮件系统这样的树状分级结构中,[url=mkMSITStore:\Program%20Files\Common%20Files\Microsoft%20Shared\OFFICE11\2052\ado210.chm::/htm/mdobjrecord.htm]Record[/url] 可能有一个与之相关联的位的默认二进制流,其中包含文件或电子邮件的内容。Stream 对象可用于对包含这些数据流的字段或记录进行操作。可以通过下列方式获取 Stream 对象:
- 通过指向包含二进制或文本数据的对象(通常是文件)的 URL。此对象可以是简单的文档、表示结构化文档的 Record 对象或文件夹。
- 通过打开与 Record 对象相关联的默认 Stream 对象。打开 Record 时便可获取与 Record 对象相关联的默认流。只需打开该流便可删除一个往返过程。
- 通过将 Stream 对象实例化。这些 Stream 对象可用来存储用于应用程序的数据。跟与 URL 相关联的 Stream 或 Record 的默认 Stream 不同,实例化的 Stream 在默认情况下与基本源没有关联。
[此贴子已经被作者于2006-4-22 0:29:58编辑过]
作者: lrawinx 时间: 2006-4-22 18:34
没看明白多少,呵呵。。。
作者: 一点通 时间: 2006-4-22 18:53
请参考一下这个例子
http://www.office-cn.net/vvb/dispbbs.asp?BoardID=2&replyID=86737&id=17402&skin=0
作者: LucasLynn 时间: 2006-4-22 19:18
其实,Access本身能够识别的图形种类极少,之所以我们能在Access中插入各种格式的图片,是因为Office本身的过滤器系统,Office本身提供的多种过滤器,将各种图形格式转化为统一的标准格式,也就是位图格式后再递交应用程序处理,所以对于Access而言,即便是压缩率极高的JPEG图形,他最终得到的还是没有任何压缩的位图数据。而位图数据本身就是很大的。
说到Access,其实他真正支持的图形格式严格来说只有两种,通过对Access.Image.PictureData的分析我们可以知道,一种是DIB格式,也就是位图格式,还有一种是矢量格式,分为WMF和EMF两个版本。
所以要想使用大量的图片而又不使数据库体积暴涨,最简单的方法就是不要将图片放在Access里面,而作为文件存储,需要用到的时候再调入,这个时候Office会自动调用相应的过滤器对其进行转化,供Access使用。
如果不想使用文件形式的,直接将压缩过的数据作为二进制存储在数据库中的,那么就要自己写代码来完成过滤器的调用工作了。
作者: 一点通 时间: 2006-4-22 19:40
LucasLynn解释得很详细,以前我还不知为何会暴涨的原因,谢谢
[此贴子已经被作者于2006-4-23 18:20:01编辑过]
作者: 情比金坚 时间: 2006-4-22 22:50
螺丝文的示例还不是最好的,他毕竟还是仅仅存储一个链接地址,这样还是多有不便,把图片真正保存到字段中才叫数据库嘛,事实是可以做到的,数据库不会暴涨的。word,excel都可以存储为字段,这样做公文流转时很方便。
作者: 一点通 时间: 2006-4-22 22:54
情版主可否做一个例子上来参考一下呢?
作者: lrawinx 时间: 2006-4-22 23:27
我有这样的构思
在外部建立一个文件夹用来存储图片
然后用工具把图片和数据库集成一个安装文件
安装时,图片文件夹将安装到一个固定目录下
就和某些游戏在安装后会在我的文档里生成一个存档文件夹一样
作者: lrawinx 时间: 2006-4-22 23:27
我有这样的构思
在外部建立一个文件夹用来存储图片
然后用工具把图片和数据库集成一个安装文件
安装时,图片文件夹将安装到一个固定目录下
就和某些游戏在安装后会在我的文档里生成一个存档文件夹一样
作者: 情比金坚 时间: 2006-4-23 00:20
嘻嘻,好,有空再作,作一张收多多金币的帖子[em01][em01][em01][em01][em01]
作者: 一点通 时间: 2006-4-23 00:22
以下是引用情比金坚在2006-4-22 16:20:00的发言:
嘻嘻,好,有空再作,作一张收多多金币的帖子[em01][em01][em01][em01][em01]
一定一定,有付出就有收获,呵呵
作者: LucasLynn 时间: 2006-4-24 17:46
如果一定要做到数据库里面,有个变通的方法。
可以将压缩图形文件的内容直接存入数据库(注意并非作为图形,而是作为二进制文件),需要作为图形显示的时候先以文件形式导出到临时文件夹,然后作为图形载入。
作者: 情比金坚 时间: 2006-4-26 09:22
已经有示例了,就是牧人的办法
作者: huanghai 时间: 2006-5-30 17:05
试试使用256色的BMP格式看看效果,你可以使用FIREWORKS下现实这样的压缩文件.
作者: aabb33j 时间: 2006-10-31 00:35
[em01][em01][em01]
作者: 75501241 时间: 2007-3-23 05:29
[em01]
作者: whaojz 时间: 2009-1-11 22:35
什么是流技术
作者: shitou1ge 时间: 2009-4-12 10:23
天天学习
作者: yinghua05 时间: 2009-4-13 15:53
受教了!
作者: 最怕冷 时间: 2009-4-20 21:54
但是如果要想在连续窗体里面中使用图片,好象只有把图片放进ole字段里面这一招
作者: 风清九剑扬 时间: 2010-2-2 20:50
流技术好高深啊
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |