SQL SERVER的图象存储问题(100分)

P

pount

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用Delphi4进行SQL Server 6.5 的数据库开发时,其中一个字段为
image字段,我用如下方法对该图象字段赋值:
if OpenDialog1.Execute then begin
currentFile:=openDialog1.FileName;
Table1.Edit;
DBImage1.Picture.LoadFromFile(CurrentFile);
Table1.post;
end;
程序运行后,发现图象小于23K时,可以写如,稍大时,则出现如下提示:
‘Invalid Blob Length',各位大侠,这是为何?
 
试试在BDE中设置SQL Server的BLOB SIZE值大一些。
 
在BDE中设置SQL SERVER 的BLOB SIZE值大一些是可以,
问题是如果图象有几百K,甚至1M多,那有如何呢?
 
如图象大于几百K,我试了一下,好象有问题,不只在
SQL SERVER 7.0 中该问题是否还有?
 
痛苦啊!

这个问题不光是图象,所有的BLOB字段都有。
我们遇到的是能写入,
在数据库本身的客户端可以看到字段中数据的
长度是正确的:
SQL Server:
Select DataLength(xxx) ...
Sybase
Select Length(xxx) ... //记不太清了

但读出时受到Blob Size限制,
只能读出前面一部分。

后来将图象转换为JPEG格式,压缩了一下,勉强缓和
了一下。

问题的根源似乎在于BDE对BLOB字段
在网络上传输时的Cache
 
对大图象,是否只能用Jpeg,Gif等图象格式?我以前用Oracle7.1
好象可以对大图象操作!
 
To 李颖:
我现在只有用Gif等格式的图象,可我的Delphi4中图象只
可处理Bmp,jpeg等,不能处理GIF格式的图象,请问你那可有
相关的控件,使Delphi4既支持Bmp,jpeg等图片又支持Gif格式
的图象?谢谢!
 
Rx控件库支持Gif格式,包括:
RxGif.Pas: Gif格式对象等
GifCtrl.Pas: 显示Gif文件的控件等

 
To 李颖:
嘿嘿,不好意思,能否将Rx控件发一份给我?我的E-MAIL:
pount@pdns.jsitec.edu.cn

 
我用GifImage控件在SQL SERVER 6.5环境下用
DBimae.Picture.LoadFrom(file);
Table1.post; 存储GIF图象时,发现图象存储不行,而BMP
文件则可以,请问这是为何 ?
 
因为BLOB子段在数据库是个指针,所以应先设置@@textsize, 然后才能正常读写。
 
多人接受答案了。
 
顶部