delphi或delphi2009怎么操作access2007里面的附件字段(里面的图片)(100)

  • 主题发起人 主题发起人 dmx1981
  • 开始时间 开始时间
D

dmx1981

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,谢谢!
 
难道就没有高手知道的吗?请指教呀!
 
可以用流处理,建议你下载大富翁的离线数据库,里面有很多这方面的东西。www.delphifans.com
 
我有Oracle BLOB字段的代码,你可以参考后改下procedure TfmUpLoadPic.Button2Click(Sender: TObject);var BLOB:TLobLocator; //memStrm:TMemoryStream; JPEGImage:TJpegImage; begin JPEGImage:=TJpegImage.Create; //memStrm:=TMemoryStream.Create; //memStrm.LoadFromFile(Edit1.Text); with DM.OraQuery6 do begin Close; SQL.Clear; SQL.Add('update shm_person_header set header_pic1 = :blob_pic1'); SQL.Add(' where p_header_id = '+fmPersonInfo.AdvEdit1.Text); //SQL.Add(' and p_line_id = '+fmPersonInfo.vP_Line_ID); DeclareVariable('blob_pic1', otBlob); BLOB:=TLobLocator.CreateTemporary(DM.OraConn, otBlob, True); JPEGImage.Assign(Image1.Picture.Graphic); JPEGImage.SaveToStream(BLOB); SetComplexVariable('blob_pic1', BLOB); ExecSQL; end; JPEGImage.Free; BLOB.Free; //memStrm.Free; DM.Qry_PicLoad.Refresh; Edit1.Clear; Button2.Enabled:=False; //Image1.Picture.Free;end;
 
以前发过,下面是基本的操作,你再根据需要修改下就行了//****************添加信息********************************procedure TForm1.Button1Click(Sender: TObject); var jg : TJpegImage; s:TMemorystream;begin if opendialog1.FileName='' then // 判断选择图片没有 begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('insert into 表1 VALUES ('''+edit1.Text+''','''+edit2.Text+''',null)'); ADOQuery1.ExecSQL; // 没有选择图片插入时给image项置为NULL end else begin // 有图片时,就转换图片位流再保存到数据库 s:=TMemorystream.Create; s.LoadFromFile(opendialog1.FileName); ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('insert into 表1 VALUES ('''+edit1.Text+''','''+edit2.Text+''',:tmpcad)'); ADOQuery1.Parameters.ParamByName('tmpcad').LoadFromStream(s,ftBlob); ADOQuery1.Prepared; ADOQuery1.ExecSQL; end;end;//****************读取时********************************procedure TForm1.Button5Click(Sender: TObject);var s:TMemorystream; JpgFile:TjpegImage;begin ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('select * from 表1'); ADOQuery2.Open; if adoquery2.RecordCount >0 then begin edit1.Text:=adoquery2.fieldbyname('haha').AsString; edit2.Text:=adoquery2.fieldbyname('hehe').AsString; // 如果读取到的image字段(heihei)是空 if adoquery2.fieldbyname('heihei').IsNull then begin image1.Picture.LoadFromFile('./0.jpg'); exit; end else begin // 如果不是空就转换成图片显示出来 s:=TMemorystream.Create; TBlobField(ADOQuery2.FieldByName('heihei')).SaveToStream(s); s.Position :=0; JpgFile:=TjpegImage.Create ; jpgfile.LoadFromStream(s); image1.Picture.Assign(JpgFile); end; end;end;
 
老大们,不是图片存储问题,你们用过ACCESS2007的附件字段吗?一个字段可以存好几个不同类型的文件,像文本,图片什么都可以!我的意思是怎么通过delphi操作附件字段里面的文件,增加,删除文件,显示或打开里抽的文件等!
 
后退
顶部