写JPEG到SQL2000 ( 积分: 50 )

  • 主题发起人 主题发起人 DELPHI.X
  • 开始时间 开始时间
D

DELPHI.X

Unregistered / Unconfirmed
GUEST, unregistred user!
表image,字段image;
字段类型varbinary;
var
picstream:tadoblobstream;
begin
with adoquery1 do
begin
edit;
picstream:=tadoblobstream.Create(tblobfield(fields[0]),bmWrite);
picstream.LoadFromFile('c:/1.jpg');
picstream.Position:=0;
tblobfield(fields[0]).loadfromstream(picstream);
post;
picstream.Free;
end;
end;

错误为:invalid class typecast 请教高手我是不是程序有问题啊~谢谢
 
表image,字段image;
字段类型varbinary;
var
picstream:tadoblobstream;
begin
with adoquery1 do
begin
edit;
picstream:=tadoblobstream.Create(tblobfield(fields[0]),bmWrite);
picstream.LoadFromFile('c:/1.jpg');
picstream.Position:=0;
tblobfield(fields[0]).loadfromstream(picstream);
post;
picstream.Free;
end;
end;

错误为:invalid class typecast 请教高手我是不是程序有问题啊~谢谢
 
错误解决了,字段类型应该是image型的就好了。
不过数据记录不让我post为什么啦
 
最简单的方法用DBImage:

uses jpeg

var
j: TJpegImage;
begin
j := TJpegImage.Create;
j.LoadFromFile('c:/1.jpg');
DBImage1.DataSource.DataSet.Edit;
DBImage1.Picture.Graphic.Assign(j);
DBImage1.DataSource.DataSet.Post;
j.Free;
end;
 
var
Fs:TMemoryStream;
begin
FS:=TMemoryStream.create;
image1.Picture.Bitmap.SaveToStream(FS);
ADODataSet1.Active:=true;
ADODataSet1.Append ;
TBlobField(ADODataSet1.FieldByName('image')).loadFromStream(Fs);
ADODataSet1.Post;
end;
 
多人接受答案了。
 
麻烦china_bill了
var
Fs:TMemoryStream;
begin
FS:=TMemoryStream.create;
adoquery1.First;
TBlobfield(adoquery1.FieldByName('image')).SaveToStream(fs);
image2.Picture.Graphic.LoadFromStream(fs);
fs.Free ;
end;
我读不出来~~
 
后退
顶部