照片读取问题(100分)

  • 主题发起人 主题发起人 惠顾2008
  • 开始时间 开始时间

惠顾2008

Unregistered / Unconfirmed
GUEST, unregistred user!
我用下列程序,把程序存储到SQL SERVER数据库,但总出现Invalid class typecast提示。
FieldByName('FILENAME').AsString:=ExtractFileName(OpenPictureDialog1.FileName);
Stream:=TmemoryStream.Create();
Stream.LoadFromFile(OpenPictureDialog1.FileName);
Tblobfield(FieldByName('ZP')).LoadFromStream(Stream);
adotable1.Post;
 
ZP要用Image字段类型
 
FieldByName('FILENAME').AsString:=ExtractFileName(OpenPictureDialog1.FileName);
Stream:=TmemoryStream.Create();
Stream.LoadFromFile(OpenPictureDialog1.FileName);
Stream.Position := 0; //这句,注意指针要回到头部
Tblobfield(FieldByName('ZP')).LoadFromStream(Stream);
adotable1.Post;
 
procedure cunpic(const Field: TField; const Bmp: TBitmap);
var
JPEGImage: TJpegImage;
Stream: TMemoryStream;
begin
if (not Bmp.Empty) then
begin
JPEGImage := TJpegImage.Create;
Stream := TMemoryStream.Create;
try
JPEGImage.Assign(Bmp);
Stream.Clear;
JPEGImage.SaveToStream(Stream);
TBlobField(Field).LoadFromStream(Stream);
finally
JPEGImage.Free;
Stream.Free;
end;
end;
end;

使用
cunpic(FieldByName('ZP'), ABitmap);
 
这几天一直上不了此网站,所以....把照片的数据类型改为IMAGE以后存不了记录的问题就解决啦。数据库为ACCESS时,照片的数据类型为BINARY也不出现异常。
 
后退
顶部