我用的是INTERBASE的BLOB类型保存图片字段,过年前多谢大富翁网友的指点,现把我的源码提供给你参考
SQL应该差不多吧)用流变量传递图片
1.读取图片
procedure TMapplyer.BitBtn1Click(Sender: TObject);
var
pic:tjpegimage;
begin
Pic:=TJpegImage.Create;
image1.Picture.Graphic := nil;
OpenDialog1.Execute;
end;
2.保存图片同时显示到IMAGE控件
procedure TMapplyer.BitBtn2Click(Sender: TObject);
var
pict:string;
strm:tmemorystream;
pic:tjpegimage;
begin
Mdata.T_applyer.Edit;
pict:=opendialog1.FileName;
if PICT <>'' then
begin
TBlobField(Mdata.T_applyer.FieldByName('title_image')).LoadFromFile(pict);
Pic:=TJpegImage.Create;
strm :=tmemorystream.Create ;
image1.Picture.Graphic := nil;
TBlobField(Mdata.T_applyer.FieldByName('title_image')).saveToStream(strm);
strm.seek(0, 0);
Pic.LoadFromStream(strm);
image1.Picture.Graphic:=pic;
image1.Update;
pic.Free ;
strm.Free ;
end;
Mdata.T_applyer.post;
Mdata.T_applyer.open;
//im age1.Picture.LoadFromFile(pict);
//image1.Update;
end;
3.查询记录或移动记录时显示图片(要判断是否为空,要不图片字段为空时会报错)
procedure TMapplyer.cmdpriorClick(Sender: TObject);
var
strm:tmemorystream;
pic:tjpegimage;
begin
Mdata.T_applyer.prior;
//T_product.Edit;
Pic:=TJpegImage.Create;
strm :=tmemorystream.Create ;
image1.Picture.Graphic := nil;
if Mdata.T_applyer.FieldByName('title_image').IsNull then
begin
pic.Free ;
strm.Free ;
end
else
begin
TBlobField(Mdata.T_applyer.FieldByName('title_image')).saveToStream(strm);
strm.seek(0, 0);
Pic.LoadFromStream(strm);
image1.Picture.Graphic:=pic;
image1.Update;
strm.seek(0, 0);
pic.Free ;
strm.Free ;
end;
{T_APPLYER.prior;}
if Mdata.T_APPLYER.bof then
begin
cmdadd.Enabled:=true;
cmdsave.Enabled:=true;
cmdfirst.Enabled:=false;
cmdprior.Enabled:=false;
cmdnext.Enabled:=true;
cmdlast.Enabled:=true;
// cmdquery.Enabled:=true;
cmdedit.Enabled:=true;
cmddelete.Enabled:=true;
cmdprint.Enabled:=true;
cmdexit.Enabled:=true;
end
else
begin
cmdadd.Enabled:=true;
cmdsave.Enabled:=true;
cmdfirst.Enabled:=true;
cmdprior.Enabled:=true;
cmdnext.Enabled:=true;
cmdlast.Enabled:=true;
// cmdquery.Enabled:=true;
cmdedit.Enabled:=true;
cmddelete.Enabled:=true;
cmdprint.Enabled:=true;
cmdexit.Enabled:=true;
end
end;