delphi将图片存储到sql server 2005

sql server 2005 字段类型为 image

 

delphi使用的单元为jpeg, db, dbtables;

delphi 存储图片代码片段

procedure TForm1.btnPostClick(Sender: TObject);
var
  lMemoStream : TMemoryStream;
  jpg : TJpegImage;
begin
  lMemoStream := TMemoryStream.Create;
  jpg := TJpegimage.Create;
  jpg.Assign(Img.Picture.Graphic);
  jpg.SaveToStream(lMemoStream);
  lMemoStream.Position := 0;
  TBlobField(dm1.adoqrytea.fieldbyname('image')).LoadFromStream(lMemoStream);
  dm1.adoqrytea.Post;
end;

delphi从数据库读取到image中的代码片段

procedure TForm3.FormShow(Sender: TObject);
var
  MyJPEG : TJPEGImage;
  MS : TMemoryStream;
begin
  MyJPEG:=TJPEGImage.Create;
  MS:=TMemoryStream.Create;
  if not dm1.adostuview.Active then
     dm1.adostuview.Open;
  with dm1.adostuview do
  begin
    TBlobField(dm1.adostuview.Fields[9]).SaveToStream(MS);
    ms.Position := 0;
    MyJPEG.LoadFromStream(MS);
    Img.picture.assign(MyJPEG);
    MyJPEg.free;
    MS.free;
  end;
end;

 

转载于:https://www.cnblogs.com/snow001x/archive/2008/11/17/1334772.html

随便说说最近项目中的三层架构吧。讲点实际的东西。我最讨厌空讲道理。网上讲道理的太多了,不喜欢举例子。 大多数文章中都或多或少的讲到了三层架构。表示层,业务层,数据层。又把业务层再细分,分为外观服务层,主业务服务,及数据库库服务层。 今天主要讨论一下业务层吧。举个最简单的例子。客户端获取数据。 业务层要与表示层尽量解藕, 我的方法是:首先我们在中间层TLB_中定义一个接口 IBusinessService, 定义一个方法。getvoList,我要得到一个VO的列表, VO即ValueObject, 例如:TValueObject= class(TPersistent) private b_insertFlag :Boolean; b_updateFlag :Boolean; b_deleteFlag :Boolean; d_rowVersion :double; procedure setInsertFlag(pInsertFlag :Boolean); function getInsertFlag: Boolean; procedure setUpdateFlag(pUpdateFlag :Boolean); function getUpdateFlag: Boolean; procedure setDeleteFlag(pDeleteFlag :Boolean); function getDeleteFlag: Boolean; procedure setRowVersion(pRowVersion :double); function getRowVersion:double; protected function GetOLEData: OleVariant; virtual; procedure SetOLEData(const Value: OleVariant); virtual; published property bInsertFlag: Boolean read getInsertFlag write setInsertFlag; property bUpdateFlag: Boolean read getUpdateFlag write setUpdateFlag; property bDeleteFlag: Boolean read getDeleteFlag write setDeleteFlag; property dRowVersion: double read getRowVersion write setRowVersion; property POLEData:OleVariant read GetOLEData write SetOLEData; end;TUserVO = class(TValueObject) private id: string; name: string; password: string; 。。。。。。。。。。 VO的列表:TValueObjectList = Class(TObjectList) private ValueObject: TValueObject; ClassName: TClass; procedure setClassName(pTmpClsName :TClass); function getClassName: TClass; procedure setValueObject(pTmpVO :TValueObject); function getValueObject: TValueObject; protected function GetOLEData: OleVariant; virtual; procedure SetOLEData(const Value: OleVariant); virtual; published function AddItem(index: integer; AObject: TObject ):Integer; virtual; function GetItem(index, itemid: integer ): TObject; virtual; function CountItem:Integer; virtual; public constructor Create; virtual; destructor Destroy; override; procedure AfterConstruction; override; property PClassName: TClass read getClassName write setClassName; property POLEData: Ole
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值