请教高手:如何在BDE下使用超过BDE限制的BLOB(100分)

  • 主题发起人 主题发起人 zhao_ji
  • 开始时间 开始时间
Z

zhao_ji

Unregistered / Unconfirmed
GUEST, unregistred user!
BDE在处理BLOB字段是对字段的大小有限制,但在实际工作中,
常常要处理包括图象在内的大文本,如何克服这个矛盾。
 
在BDE里调大点不就行了?
 
打开BDE管理,修改相应的数据库驱动的有关项如:BLOB CACHE和UPDATE CACHE等,保存后重新建一次你的别名就OK
 
但是有些数据库本身对BLOB是有限制的,如SQL SERVER是2G,DB2/400是15M,
那样的话估计在BDE里再怎么改大也不行:(
 
数据库本身对BOLB有限制,但BDE限制的更小,资料上说BLOB SIZE最大为1000K,但我试过可以
存取2M左右的数据,再大就不行了,而且存储数据时DELPHI都不会报错。如果用ADO,我试过
存储超过6M的数据,如果BDE也可以我就OK了。劳驾各位再研究一下;
我的EMAIL:ZHAO_JI@NETEASE.COM
 
BLOB SIZE 和 BLOB CACHE的大小只是影响数据读取的速度,而不会限制BLOB的大小!
本人实践认为只要你的数据不超过数据库本身对BOLB的限制即可。
 
lyd_2000:
能具体说明如何储存超过2M的BOLB字端,重谢
 
BDE和ADO应该没有什么本质区别啊,只是一个用TBlobStream,一个用TADOBlobStream罢了。方法是一样的。
 
TBlobField(Table.FieldByName('xxx')).LoadFromFile 看来有限制,

而同是bde,用query的 insert into ... values(... , :blob_field)
query.ParamByName('blob_field').LoadFromFile('...',ftBlob)
query.ExecSQL
保存oracle的long raw类型,保存30m的文件都没事

(只是读出比较麻烦,我只好用ado来读出。ado确实没有限制,而bde很小就不行了)

 
我的SQL 数据库在输入Blob字段时也总是会少数据,存入30多K,读出来时只剩下16K了,
而我的BDE中 的 Blob Size已经设置了成256K了,而且数据丢失是随机的,不知怎么回事?
 
我没用 loadfromfile,用的是 stream,存过 10 M 的东西,没什么问题,后台是 interbase
 
实际操作中不大可能把太大的数据量本身存在数据库里.
造成数据库的膨胀;导致数据库的性能快速下降;
存储文件的位置+Socket通讯是一个比较理想的解决方案
 
多人接受答案了。
 
后退
顶部