科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件在Delphi程序中操作大二分对象(BLOB)

在Delphi程序中操作大二分对象(BLOB)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 随着数据库及多媒体技术的发展,人们需要存储、处理的信息的种类越来越多。数据库中存储的数据不再只是文本、数字,而且还可能是图形、声音、视频等等,各式各样的类型……

作者:李晓平 袁一林 来源:yesky 2007年11月1日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
下面是一个简单的例子。

一个简单的例子
  本例中,采用Paradox数据库。库中有两个字段,一个是字符型,另一个是BLOB型。我们在主Form上放一个OLE控件用于编辑及转换数据。一个Table控件操作数据库。源代码如下:
unit blob01;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, Grids, DBGrids, Db, DBCtrls, OleCtnrs, DBTables, ExtCtrls;
type
 TForm1 = class(TForm)
  Panel1: TPanel;
  Panel2: TPanel;
  Splitter1: TSplitter;
  Panel3: TPanel;
  Table1: TTable;
  OleContainer1: TOleContainer;
  DBNavigator1: TDBNavigator;
  DataSource1: TDataSource;
  DBGrid1: TDBGrid;
  OpenBtn: TButton;
  CloseBtn: TButton;
  OpenDialog1: TOpenDialog;
  LoadBtn: TButton;
  Table1Filename: TStringField;
  Table1ABlob: TBlobField;
  procedure OpenBtnClick(Sender: TObject);
  procedure CloseBtnClick(Sender: TObject);
  procedure LoadBtnClick(Sender: TObject);
  procedure Table1AfterScroll(DataSet: TDataSet);
private
 { Private declarations }
public
 { Public declarations }
end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.OpenBtnClick(Sender: TObject);
begin
  Table1.Open; //打开数据库
end;

procedure TForm1.CloseBtnClick(Sender: TObject);
begin
  Table1.Close; //关闭数据库
end;

//打开一个数据文件、创建OLE对象、将对象数据存入数据库
procedure TForm1.LoadBtnClick(Sender: TObject);
var
fn: string;
begin
 if OpenDialog1.Execute then begin //打开文件
  fn := ExtractFileName(OpenDialog1.FileName);
  Table1FileName.AsString := fn;
  OleContainer1.CreateObjectFromFile(OpenDialog1.FileName, False); //创建OLE对象
  OleContainer1.SaveToFile("tmp"); //将OLE数据存入临时文件
  Table1ABlob.LoadFromFile("tmp"); //将OLE数据存入数据库
 end;
end;

//定义此方法用于显示当前记录中的OLE对象
procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
 if not Table1ABlob.IsNull then begin
  Table1ABlob.SaveToFile("tmp"); //数据存入临时文件
  OleContainer1.LoadFromFile("tmp"); //从临时文件中读取OLE对象
 end;
end;

end.


该程序在Delphi 5.0下编译通过。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章