数据库开发(4)

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables;

type
TForm1 = class(TForm)
Database1: TDatabase;
Session1: TSession;
Table1: TTable;
Button1: TButton;
ComboBox1: TComboBox;
ListBox1: TListBox;
Label1: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var I: Integer;
DBNames: TStrings;
begin
DBNames := TStringList.Create;
//Session1.GetDatabaseNames(DBNames);
Session1.GetdatabaseNames(DBNames);
for I := 0 to DBNames.Count - 1 do
ComboBox1.Items.Add(DBNames[I]);

Database1.GetTableNames(ListBox1.Items, False);
end;

{ADOConnection1.GetTableNames(ListBox2.Items, False);
Database1.GetTableNames(ListBox1.Items, False);}

procedure TForm1.Button2Click(Sender: TObject);
begin
Database1.Close;
Database1.AliasName:= ComboBox1.Text;
Database1.Open;
ListBox1.Clear;
Database1.GetTableNames(ListBox1.Items, False);
end;

end.

-----------------------------------------------------------------------

第十节 开发InterBase应用程序

InterBase数据库是Borland公司开发的数据库产品,在Borland
产品得到广泛的应用。该数据库是Delphi和Kylix(被称作Linux下的
Delphi)开发的跨平台应用程序可用的数据库之一(其它还有Qracle
、MySQL、DB2)。InterBase 有与Delphi结合紧密的特点,而且,在
Delphi安装盘中。还提供了InterBase 数据服务和客户端软件,可以
方便的构筑InterBase数据库的开发环境。
InterBase 的组件都放在InterBase面板中,从使用方法上来说,
和上面介绍的BDE 或者ADO 相似,可以自己查阅有关资料。
这里就不再讨论了。

第十一节 dbExpress数据库控制

dbExpress 是Delphi 6.0 新加的功能,dbExpress是一个跨平台
的、不依赖于数据库的一个独立的层。它提供了一些方法用于动态SQL
的处理。它定义了一个接口用于访问不同的SQL 服务器,并为各种数
据库提供了驱动程序。
这些驱动程序在Windows和Linux下都能使用(Windows下为动态连
接库.DLL,而在Linux下为共享对象.so文件)。 这种API 驱动,减少
了数据库引擎需要的额外开销。
标准的dbExpress数据库应用是不使用数据缓存的,由于保持核心
运行时数据库访问层的简单和轻便。所以,dbExpress提供了高性能的
数据库连接,运行速度很高。但是,不用数据缓存将无法修改数据,
而且,指针的移动也是单向的。为了能够修改数据,dbExpress也提供
了一种使用数据缓存的控件,当然这无疑也会影响到效率。
目前在dbExpress能够应用的数据库有Qracle、MySQL、DB2和
InterBase,这里以InterBase 数据库为例。

一、单向的数据连接

实例数据库为Delphi提供的Employee.gdb。

1)加入 TSQLConnection
属性:
LoginPrompt=False 不用用户名和密码显示
DirverName=InterBase 驱动程序名
ConnectionName=IBLoca 默认数据库(Database.gdb)

Params 点对话框出现信息表,修改数据库的名字Employee.gdb

Connected=true 如果连接正确,将可以顺利的为true;

2)加入 TSQLDataset
属性:
SQLConnection=SQLConnection名字
CommandType=ctTable 用表名连接
CommandText=表名
Active=true 如果正确,将可以为true;

3)加入 TDataSource
属性:
DataSet=SQLDataSet名字

4)加入数据绑定控件,由于不用缓存,所以不能用DBGrid,这里只
用简单的DBEdit。
注意属性:
DataSource=DataSource名字
DataField=字段名

5)注意,SQLDataset移动指针只有两个方法

SQLdataset1.Next;
SQLdataset1.First;

这就可以运行了。

二、可以修改的数据连接

做一个主从结构的数据显示,要求从表是可以修改的,而且要用
DBGrid,所以,这里要用一个新的控件来联系:

TSQLClientDataSet

和TSQLDataset不同TSQLClientDataSet是使用数据缓冲区的,所
以,用它连接数据源可以修改,也可以用DBGrid显示。

和上面方法相同,加入TSQLConnection作数剧源。
属性:
LoginPrompt=False 不用用户名和密码显示
DirverName=InterBase 驱动程序名
ConnectionName=IBLoca 默认数据库(Database.gdb)

Params 点对话框出现信息表,改数据库名:Employee.gdb

Connected=true 如果连接正确,将可以顺利的为true;

1)做主表

加入 TSQLDataset
属性:
SQLConnection=SQLConnection1
CommandType=ctTable 用表名连接
CommandText=PROJECT (这是在Employee.gdb内的一个表)
Active=true 如果正确,将可以为true;

加入 TDataSource
属性:
DataSet=SQLDataSet1

加入数据绑定控件两个DBEdit,显示字段分别为PROJ_ID和
PROJ_NAME。
用同样的方法作两个指针移动的Button。

2)做从表

加入TSQLClientDataSet
属性:
SQLConnection=SQLConnection1
CommandType=ctTable 用表名连接
CommandText=PROJ_DEPT_BUDGET (这是在Employee.gdb内的另一
个表)
Active=true (激活)
做主从连接
MasterSource=DataSource1
MasterFierds=PROJ_ID (连接字段)

加入 TDataSource
属性:
Name=DataSource2
DataSet=SQLClientDataSet1

加入DBGrid,与DataSource2连接。


这就完成了一个主从表制作,试验一下,可以发现从表是可以修改的。
仔细研究一下这个过程,归纳出设计的一般方法。一般来说,dbExpress
主要在网络中使用,特别是后面将要提到的WebSnap 快速网络开发方法,
将会给dbExpress 以很大的施展空间。

posted @ 2008-12-02 15:05  蒋弢  阅读(268)  评论(0编辑  收藏  举报