我在存储图象时,为什么容量大的BMP文件存储出错,而小的可以呢? (50分)

  • 主题发起人 主题发起人 宫本宝藏
  • 开始时间 开始时间

宫本宝藏

Unregistered / Unconfirmed
GUEST, unregistred user!
我在存储图象时,为什么容量大的BMP文件存储出错,而小的可以呢?
我用的是Qurey来进行添加的!
但有一点,如果BMP图象的容量小于30K则没问题!
如果大于30K以上则图片不完整!
特别是更大的图片,如是300K的,则显示底部一部分,上面的大部分都是黑的!
请问是什么问题?
该如何解决呢?
有如何将BLOB的size改大呢?
 
采用stream
 
你如果是使用BDE连接的话,讲BDE中的blob size改大试试看
 
建议你去看李维的[Delphi 5.X ADO_MTS_COM+高级程序设计篇 ],有采用TStream将图片导入
数据库的例子.很方便.
这本书非常好,cakk.126.com有电子书

http://202.96.70.228/cakk/delphi/Delphi%205.X%20ADO_MTS_COM+.zip
 
我遇到过这个问题,采用BDE方式连接时,不论blob size改成多大,只要BMP文件大于1M,
就会出错。后来改成用ADO连接,就没有这种问题了。
建议你也这样试试看!!
 
agree with bluerain.我遇到過這個問題。你用ADO連接就不會有此問題了。
 
我用的是Qurey来进行添加的!
但有一点,如果BMP图象的容量小于30K则没问题!
如果大于30K以上则图片不完整!
特别是更大的图片,如是300K的,则显示底部一部分,上面的大部分都是黑的!
请问是什么问题?
该如何解决呢?
有如何将BLOB的size改大呢?
 
TBlobField(Table1.FieldByName('BITMAP')).BlobSize := xxx
试试看.
如果是用ADOQUERY的话,看看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=754318
也许有帮助.
 
如果是oracle的话,还和你那个 blob字段的设置有关系的。
 
我用的是SQL Server和Delphi5
 
在BDE中選擇你的數據源﹐里面就有BLOB SIZE﹐默認是32﹐你可以改成1024。這是最大的。
 
To dadabox:
BDE是只读的,该如何该呢?
To Ayong:
如何把BDE改成ADO连接呢?
 
我實在不明白你說的只讀是什么意思﹐你不能修改還是改了保存不了。在上面的工具欄中
不是有一個向右的藍色箭頭﹐你點了他后就保存了。BDE知道在哪打開吧﹐在控制台中。
 
在你的Database控件中点击右键,有一个database editor.
Name : 你的数据库名, driver name := MSSQL,
然后按default:
DATABASE NAME=你的数据库名
SERVER NAME=你的服务器名
USER NAME=用户
//删掉了几行,你就按缺省的,不用改动
BLOBS TO CACHE=1024 ~~~~~~改大成1024
BLOB SIZE=1024 ~~~~~~改大成1024
PASSWORD=密码

我已经试过了,存了一副866k的bitmap图片,没有问题.
 
To bluerain:
你用的是Table还是Query?
为什么我的还是老样子呢?
是不是我的语句有问题,请把你的给我看看好吗?我再给你加分!
 
给个信箱,给你寄个demo.你主要看看数据模块中MyDB的设置.
不过我是在D6中写的.
 
to 千中元:
'如果是oracle的话,还和你那个 blob字段的设置有关系的。'
什么意思呀??
to all :
Ado支持三层和oracle数据库blob字段吗??
 
smile2397822@263. net
 
我今天剛寫完一個廠卡列印的東西
1.改TDatabase中的BLOB size
2.用ADO
都可以!
 
后退
顶部