为啥我读出来的图像文件不对(是黑色一片,图片有1M大) (100分)

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

zfnet

Unregistered / Unconfirmed
GUEST, unregistred user!
(sql数据库)
为啥我读出来的图像文件不对(是黑色一片,图片有1M大)
读图像文件:
...
var
BlobStream:TBlobStream;
FileStream: TFileStream;
bagin
...
if FileExists(ExtractFilePath(Application.ExeName)+'temp.bmp') then
deletefile(ExtractFilePath(Application.ExeName)+'temp.bmp');
BlobStream:=TBlobStream.Create(query3.fieldbyname('zp')as tblobfield,bmRead);
FileStream := TFileStream.Create(ExtractFilePath(Application.ExeName)
+'temp.bmp',fmCreate or fmOpenWrite);
FileStream.CopyFrom(BlobStream, BlobStream.Size);
FileStream.Free;
BlobStream.Free;

image1.Picture.Bitmap.LoadFromFile(ExtractFilePath(Application.ExeName)+'temp.bmp');
image1.Stretch:=true;
....
=====
 
(写图像文件
var
st: TStringStream;
begin
st := tstringstream.create('');
bitmap.savetostream(st);
query1.sql.text := 'insert into table Image_field values :bmp';
query1.parambyname('bmp').asblob := st.datastring;
query1.execsql;
st.free;
end;)

读出来的bmp文件只有32K.
sos!
 
可能是sql server对它大小的限制
你试试改bde的配置(李唯的系统篇里有)或去看一下sql server的帮助。
 
再说一遍:sql server的blob字段大小默认是32k。这就是问题的所在。
 
采用ADO方式编程会有这个问题吗?我怎么没有遇到过这个问题?
 
同意以上看法,本人以前也遇到过以上问题,sql server的Blob字段默认大小是32k。
 
总该想个办法吧!
难道没解决的办法?
 
我解决了。
 
后退
顶部