我要保存jpg等图片,甚至还有cad图,但是当我选择保存的是jpg图片的时候,在
DBImage能看到图片,但是我post后就没有了,图片也没有保存到数据库里面。
怎么办呢?
delphi6 + oracle8.1.7代码:
if OpenDialog1.Execute then
begin
AdoQuery.Edit;//把AdoQuery状态设置为编辑状态
DBImage1.Picture.LoadFromFile(OpenDialog1.FileName);
AdoQuery.Post;
end;
DBImage能看到图片,但是我post后就没有了,图片也没有保存到数据库里面。
怎么办呢?
delphi6 + oracle8.1.7代码:
if OpenDialog1.Execute then
begin
AdoQuery.Edit;//把AdoQuery状态设置为编辑状态
DBImage1.Picture.LoadFromFile(OpenDialog1.FileName);
AdoQuery.Post;
end;
可以使用流来处理文件,前端使用ole控件
在D5+SQL SERVER7下调试通过 procedure TForm1.save_image_BitBtnClick(Sender: TObject);
var
filename,ls_filehz_name:string;
StringStream1:TStringStream;
jpeg1:TJPEGImage;
begin
if OpenDialog1.FileName<>'' then
begin
filename:=OpenDialog1.FileName; query1.close;
query1.sql.Clear;
query1.sql.add('insert into t_image values(:pic_type,:pic)'); //取得打开的图象文件的后缀名
ls_filehz_name:=copy(ExtractFileExt(filename),2,3);
query1.ParamByName('pic_type').Asstring:=ls_filehz_name;
//当图象文件格式为bmp时
if ls_filehz_name='bmp' then
begin
query1.ParamByName('pic').Assign(Image1.Picture);
query1.ExecSQL;
end; //当图象文件格式为jpg时
if ls_filehz_name='jpg' then
begin
StringStream1:=TStringStream.create('');
jpeg1:=Tjpegimage.Create;
jpeg1.Assign(Image1.Picture);
jpeg1.SaveToStream(StringStream1);
Query1.Parambyname('pic').AsBlob:=StringStream1.DataString;
Query1.ExecSql;
StringStream1.Free;
jpeg1.free;
end;
end;
end;