| | | 在Delphi程序中操作大二分对象(BLOB) | | 2000-11-05·
·李晓平 袁一林··yesky
| 上一页 1 2 3
下面是一个简单的例子。
一个简单的例子
本例中,采用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下编译通过。
上一页 1 2 3 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|