您的位置:首页 > 数据库

使用ADO ACCESS ImageEn 动态,显示图片,导入图片,导出图片,删除图片

2007-10-15 22:06 603 查看
//使用ADO ACCESS ImageEn来处理图片字段希望大家不要少走冤路了!
//含显示,导入,导出,删除图片
#include  <vcl.h >
#pragma hdrstop

#include "ImageEnDbViewUnit.h"
//-------------------------------------------------------
#pragma package(smart_init)
#pragma link "dbimageen"
#pragma link "ieopensavedlg"
#pragma link "ieview"
#pragma link "imageen"
#pragma link "imageenview"
#pragma link "imageenio"
#pragma resource "*.dfm"
TForm1 *Form1;
int i=0;
//----------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//所使用控件ADOConnected,ADOTabel,DataSource,Label1
//这三个由ImageEn包含的,ImageEnDBView1OpenImageEnDialog,SaveImageEnDialog1
//数据库用ACCESS,其中一个图片字段要先使用ADOTable1- >Active =true;一下,设计完后取消
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 ADOTable1- >Active =true;
}

//导入图片到当前字段,并保存(支持JPG,BMP等多种格式导入)------

void __fastcall TForm1::ImportBtnClick(TObject *Sender)
{
 if (OpenImageEnDialog1- >Execute())
 {ImageEnDBView1- >IO- >LoadFromFile(OpenImageEnDialog1- >FileName);
  ImageEn1- >IO- >LoadFromFile( OpenImageEnDialog1- >FileName);
 // ImageEnDBView1- >Update();
  ADOTable1- >Edit();
  TMemoryStream *dataStream = new TMemoryStream();
  ImageEnDBView1- >IO- >SaveToStreamJpeg(dataStream);
  ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >LoadFromStream(dataStream);
  ADOTable1- >Post();
  delete  dataStream;  }
 }
//一个记录八个图片字段,一个一个显示------------------------
void __fastcall TForm1::NextBtnClick(TObject *Sender)
{ if (i==8) i=0;
  i++;
  ImageEnDBView1- >AutoDisplay = true;
  ImageEnDBView1- >AutoStretch = true;
  //ImageEnDBView1- >DataSource = DataSource1;
  ImageEnDBView1- >DataField  = ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >FieldName;
  TMemoryStream *dataStream = new TMemoryStream();
  ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >SaveToStream(dataStream);
  if (dataStream- >Size <100)   {ImageEnDBView1- >Clear();
                               ImageEnDBView1- >AutoStretch = false;
                               ImageEnDBView1- >Bitmap- >Canvas- >Font- >Size = 40;
                               ImageEnDBView1- >Bitmap- >Canvas- >Font- >Color = clRed;
                               ImageEnDBView1- >Bitmap- >Canvas- >TextOutA(0,20,"  无      图      片  ");
                                                }
  //ImageEnDBView1- >LoadPicture();
  ImageEnDBView1- >Update();//更新显示图片
  Label1- >Caption = ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >FieldName+"  size: "+IntToStr(dataStream- >Size);
  delete dataStream;
}
//导出图片,支持JPG,BMP等多种格式导出-----------------------------------------------
void __fastcall TForm1::OutputBtnClick(TObject *Sender)
{
 if (SaveImageEnDialog1- >Execute())
 ImageEnDBView1- >IO- >SaveToFile(SaveImageEnDialog1- >FileName);
 }
//---------------------------------------------------------------------------

void __fastcall TForm1::DeleteBtnClick(TObject *Sender)//删除字段的图片
{ ADOTable1- >Edit();
 ImageEnDBView1- >Clear();
 ((TBlobField *) (ADOTable1- >Fields- >Fields[i]))- >Clear();
 ADOTable1- >Post();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  access 数据库
相关文章推荐