久久精品综合-欧美精品久久久久久-www一区二区-韩国三级中文字幕hd久久精品-国产一区二区三区在线-日韩免费视频

明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

數(shù)據(jù)庫中圖像數(shù)據(jù)的存取技術(shù)

[摘要]數(shù)據(jù)庫應(yīng)用程序開發(fā)中圖像數(shù)據(jù)的存取技術(shù) Delphi提供了數(shù)據(jù)訪問(DataAccess)和數(shù)據(jù)控制(DataControls)的可視化控件,能夠方便快捷地產(chǎn)生具有良好界面且功能強(qiáng)大的數(shù)據(jù)庫應(yīng)用程序。對于涉及圖像數(shù)據(jù)(含Graphic字段)的數(shù)據(jù)庫應(yīng)用程序,如人事管理信息系統(tǒng)等,圖像數(shù)據(jù)的存取技術(shù)...
數(shù)據(jù)庫應(yīng)用程序開發(fā)中圖像數(shù)據(jù)的存取技術(shù)

Delphi提供了數(shù)據(jù)訪問(DataAccess)和數(shù)據(jù)控制(DataControls)的可視化控件,能夠方便快捷地產(chǎn)生具有良好界面且功能強(qiáng)大的數(shù)據(jù)庫應(yīng)用程序。對于涉及圖像數(shù)據(jù)(含Graphic字段)的數(shù)據(jù)庫應(yīng)用程序,如人事管理信息系統(tǒng)等,圖像數(shù)據(jù)的存取技術(shù)是一個關(guān)鍵。然而,有關(guān)Delphi下圖象的存取,特別是圖像的保存方面的技術(shù)各種資料上很少提及。下面,筆者結(jié)合一個簡單的例子來說明。

一、圖像數(shù)據(jù)的保存

1.創(chuàng)建一個含有Graphic字段的數(shù)據(jù)庫列表。

在WindowsISQ(或Databasedesktop)下create database mydb.gdb

create table myfrieds(name varchar(15) notnull,telephone varchar(12), address varchar(30),zipvarchar(8),picture varchar(15),image blob);

其中,picture字段用于保存圖像的名稱(包括路徑),image(Graphic字符)則用于存儲圖像,其數(shù)據(jù)類型為“blob”。

2.建立窗體(如圖1所示),設(shè)置窗體中各控件的屬性。

該窗體的主要功能是將某人信息進(jìn)行編輯和保存。需要注意的圖像保存所用的圖像框必須用TImage而不能用TDBImage,編輯框宜用Tedit而不宜用TDBEdit,這一點(diǎn)與圖像的讀取恰好相反。

其中,各主要控件的屬性設(shè)置如下:

Datasource1.Dataset:=table1;

Table1.Databasename:=mydb.gdb;

Table1.Tablename:=myfriends;

Table1.active:=true;

其他諸如Caption之類的屬性設(shè)置不再敘述。


3.數(shù)據(jù)處理程序的建立。

(1)圖像( .bmp文件)打開的處理。

procedureTForm1.pictopenbtnClick(Sender:TObject);

beginopendialog1.execute;

image1.picture.loadfromfile(opendialog1.filename);

end;

(2)圖像保存的處理。

圖像保存的處理程序完成把在窗體1所編輯的信息包括圖像保存到相應(yīng)的數(shù)據(jù)庫中,其關(guān)鍵是要定義一個Graphic類型的變量且該變量要用Assign()函數(shù)傳遞到相應(yīng)數(shù)據(jù)庫中保存。具體程序如下:

procedureTform1.Savebtnclick(sender:TObject);

var

graphic1:TGraphic;

begin

graphic1:=TGraphic.Create;

graphic1.loadfromfile(opendialog1.filename);

table1.insert;

table1.fieldbyname(’name’).asstring:=edit1.text;

table1.fieldbyname(’telephon’).asstring:=edit2.text;

table1.fieldbyname(’address’).asfloat:=edit3.text;

table1.fieldbyname(’zip’).asfloat:=edit4.text;

table1.fields[4].assign(graphic1);

table1.post;

graphic1.free;

end;


二、圖像數(shù)據(jù)的讀取

在數(shù)據(jù)庫數(shù)據(jù)(包括Graphic字段的數(shù)據(jù))的讀取和瀏覽方面,Delphi這一具有強(qiáng)大代碼自動生成功能的面向?qū)ο蟮拈_發(fā)工具的優(yōu)越性得到淋漓盡致的體現(xiàn)。毫不夸張地說,不需要一條語句即可完成這一功能!

圖中Table1和Datasource1的屬性的設(shè)置與數(shù)據(jù)的保存部分(圖1)相同,所不同的是數(shù)據(jù)庫數(shù)據(jù)的讀取時用TDBEdit和TDBImage控件而不用TEdit和TImage。控件TDBEdit和TDBImage只要將datafield屬性設(shè)置為其相對應(yīng)的域;TDBNavigator的datasouce屬性設(shè)置為datasource1即可。
tre 

procedure TForm1.Button1Click(Sender: TObject);
var
sfilename:string;
function blobcont(const filename:string):string;
  begin
  with tfilestream.Create(filename,fmopenread) do
   try
    setlength(result,size);
    read(pointer(result)^,size);
   finally
    free;
   end;
  end;

begin
if opendialog1.Execute then
  begin
    sfilename:=opendialog1.FileName;
    adodataset1.Append;
    adodataset1.FieldByName(’ff’).asstring:=blobcont(sfilename);
    adodataset1.Post;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
sfilename:string;
bs:tadoblobstream;
begin
bs:=tadoblobstream.Create(tblobfield(adodataset1.FieldByName(’ff’)),bmread);
try

  sfilename:=’c:ff.doc’;//換成圖片格式就可以了
  if fileexists(sfilename) then
   deletefile(sfilename);
  bs.SaveTofile(sfilename);
  OleContainer1.CreateObjectFromFile(sfilename,false);
  //OleContainer1.LoadFromFile(sfilename);
  //OleContainer1.LoadFromStream()
  //memo1.Lines.LoadFromFile(sfilename);
// WebBrowser1.Navigate(pchar(sfilename));
finally
  bs.free;
end;



主站蜘蛛池模板: 日韩在线免费观看视频 | 午夜男人的天堂 | 亚洲成人一级 | 一级免费a | 在线观看男女爱视频网站 | 欧美综合图区亚洲综合图区 | 午夜在线亚洲男人午在线 | 亚洲免费网站 | 婷婷丁香六月天 | 三级黄在线播放 | 伊人| 亚洲国产成人精品久久 | 人人公开免费超级碰碰碰视频 | 天天综合天天看夜夜添狠狠玩 | 欧美一级淫片免费观看 | 婷婷桃色网 | 日韩在线观看免费完整版视频 | 伊人动漫 在线播放 | 最新韩国伦理片大全手机在线播放 | 天天天天做夜夜夜夜 | 日韩欧美亚洲一区 | 青青久精品观看视频最新 | 青青娱乐网 | 特黄一级 | 亚洲专区区免费 | 欧美综合第一页 | 中文精品视频一区二区在线观看 | 一本到视频 | 日本一本二本免费播放视频 | 婷婷久| 天天艹天天射 | 日韩免费大片 | 日本在线免费观看 | 主播国产 | 日本欧美一级二级三级不卡 | 最新99热| 亚洲黄色第一页 | 婷婷六月久久综合丁香乐透 | 香蕉视频一区 | 在线观看精品自拍视频 | 香蕉www |