讀取 BLOB和寫入 BLOB ﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖(100分)

  • 主题发起人 主题发起人 qinmingzsj
  • 开始时间 开始时间
DBImage支持JPEG格式的图象,只要你把JPEG單元加入就可以啦﹗
 
但事实是我把DBImage去掉就不报那个错误了。
JPEG单元已经在Uses列表中。
 
JPEG单元已经在Uses列表中,那么DBImage就支持JPEG格式的图象。
我現在根本沒有用DBImage﹐而是用Image都報錯呀﹗

沒有人能夠解決我的問題嗎﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖﹖
如果幫我解決了﹐我可以再加一百分﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗﹗
 
如果没有用DBImage,我这里是不会报错的, 你试试我的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
AStream: TStream;
begin
AStream := TFileStream.Create('C:/XJGHome/PICs/2002_1_16_6_23_45.jpg', fmOpenRead);
ADOQuery1.Edit;
TBlobField(ADOQuery1.FieldByName('Pic')).LoadFromStream(AStream);
ADOQuery1.Post;
AStream.Free;
end;


procedure TForm1.Button2Click(Sender: TObject);
var
imagestream: TMemoryStream;
jpg: TJPEGImage;
begin
try
jpg := TJPEGImage.Create;
imagestream := TMemoryStream.Create;
if not ADOQuery1.FieldByName('PIC').IsNull then
begin
TBlobField(ADOQuery1.FieldByName('PIC')).SaveToStream(imagestream);
imagestream.Position := 0;
jpg.LoadFromStream(imagestream);
Image1.Picture.Assign(jpg);
end;
finally
imagestream.Free;
end;
end;

 
var
ADOTable:TADOTable;
begin
Result:=True;
ADOTable:=TADOTable.Create(nil);
with ADOTable do
begin
Connection:=Datum.ADOConnection1;
TableName:='CheckImage';
Filter:='ItemCode='+QuotedStr(p_itemcode);
Filtered:=True;
Open;
try
if recordCount>0 then
begin
Edit;
TBlobField(FieldByName('imgcontent')).LoadFromFile(LocalFileName);
end else
begin
Insert;
FieldByName('ItemCode').AsString:=p_itemcode;
TBlobField(FieldByName('imgContent')).LoadFromFile(LocalFileName);
end;
Post;
except
ShowMessage('处理失败,请向管理员报告错误发生地点!');
Result:=False;
end;
end;
ADOTable.Free;
end
 
JPEG单元在Uses列表中,DBImage也不支持JPEG格式的图象
你肯定没把这列和某个数据感应控件连接?
 
用下面代码试一下, 应当可以

jts:=TJPEGImage.Create;
if table1.State<>dsedit then table1.edit;
jts.LoadFromFile('aaaa.jpg');
BlobStream:=TBlobStream.Create(TBlobField(FieldByName('zp')),bmWrite); //zp为long row类型
BlobStream.Position:=0;
jts.SaveToStream(BlobStream);
if Table1.State in [dsedit,dsInsert] then table1.post;
 
把字段类型不要设为BLOB ,改为IMAGE就可以了
 
多人接受答案了。
 
后退
顶部