数据库开发(3)

第六节 TADOCommand对象

在ADO 的层次结构中,Command对象和RecordSet是处在同一层上,
它主要用来对数剧源执行指定的命令,比如SQL 语句,表和存储过程的
名称、更新数据,插入纪录等。虽然其它的控件也能执行这些方法,但
需要遇到需要用Command 本身的属性和方法来控制数据源的时候,利用
这个对象将是十分方便的事情。
主要属性:
CommandType
CommandText
Cancel
和上面介绍的相同

Assign(Source:Tpersistent)

把另一个ADOCommand 组件的所有属性复制到当前的ADOCommand组
件中,调用的时候按名存取组件对象。

下面的例子可以看到ADOConnection、TADOCommand、ADODataSet、
DataSource和其它数据绑定控件是如何作用的。
放入控件
ADOConnection
TADOCommand
ADODataSet
DataSource
Memo
DBgrid
Button

属性(注意一下TADOCommand1和ADODataSet1的关系是平等的):

ADOConnection1---ConnctionString=连接字符串
TADOCommand1-----Connection=ADOConnection1
commandType=cmdText
ADODataSet1 -----Connection=ADOConnection1
commandType=cmdText
DataSource1 -----DataSet=ADODataSet1
Memo1 -----------List=空
DBgrid1----------DataSource=DataSource1
Button1的Click事件过程

procedure TForm1.Button1Click(Sender: TObject);
var str1,str2:string;
begin

//取出输入的SQL 语言

str1:=trim(Memo1.text);

//由于执行SQL语言时,除了select ,其它诸如Insert,Delete,Update
//都需要事先关闭数据集,所以下面把前六个字符取出来作为判断的依
//据。

str2:=copy(str1,0,6);
ADOCommand1.CommandText:=str1; //ADOCommand1执行命令

//检查用户是否送入的是select语句

if str2='select' then
begin
ADODataset1.Recordset:=ADOCommand1.Execute;
ADODataset1.Open;
end
else
begin
//先关闭数据集
ADODataset1.Close;

//这是另一种执行SQL 命令的方法,执行delete等操作
ADOCommand1.Execute;

//按全部字段送入SQL
ADODataset1.CommandText:='select * from 奖金';
ADODataset1.Open; //重新打开
end;
end;


第七节 TADOStoredProc对象

当应用程序必须使用数据库中的存储过程的时候,也可以使用
ADOStoredProc 控件。
一个存储过程是一组语句,提前建立好保存在数据库服务器上,
可以反复被执行,在服务器上完成和数据库有关的任务,并将结果
传给用户。
许多存储过程在运行时还需要一系列的参数,可以通过Parameters
属性来设置,这个数据集和其它的ADO 数据集相似,可完成类似的
任务。

主要属性:

Active 设为true时激活数据集;

Connection 如果应用程序添加了ADOConnection,可以在这
里连接;

ConnectionString 如果没有Connection属性,可以在这里做
连接字符串;

DataSource 设置另一个数据源,一般不要设置,事实上如
果这样做Delphi会报错;

Filter 设置筛选纪录的条件;

Filtered 决定是否激活Filter中设置的筛选条件;

Parameters 设置存储过程中使用参数的属性;

ProcedureName 设置数据集使用存储过程的名字,可以用下
拉菜单选择。

主要方法

DeleteRecords 删除一条或多条纪录

Edit 设置数据集为编辑状态

EnableCountrols 使数据绑定控件显示数据

DisableCountrols 使数据绑定控件不显示数据

First 指针指向第一条纪录

Last 指针指向最后一条纪录

Prior 指针指向上一条纪录

Next 指针指向下一条纪录

MoveBy(n) 指针指向前或后的第n 条纪录

GetFieldData 把一个字段的当前值提取到缓存中去

IsEmpty 判断一个数据集是否为空

Open 打开一个数据集

Refresh 重新从数据库中提取数据更新数据集

ADOStoredProc的主要的事件与ADOQuery基本相同,可以参考使
用。


第八节 主从结构的数据库应用程序

主从结构的数据库应用程序,是属于数据库的高级应用技术,下
面我们通过一个实例来说明建立这种数据库应用程序的方法。

1)建立主从结构

加入 ADOTabl1:
属性
Connectionstring=连接字符串
Tablename=表名
Active=true 激活

加入 Datasource1
属性
DataSet=ADOTable1

连接上主表,做上有关的绑定控件

下面做从表

加入 ADOTabl2:
属性
Connectionstring=连接字符串
Tablename=表名
Active=true 激活

下面是做主从表的关键(在ADOTabl2中)
MasterSource=DataSource1
MasterFields=连接字段
(点..出现对话框,选中两个表的连接字段,Add 加入,Ok)
这就完成了主从表的连接

加入 Datasource2
属性
DataSet=ADOTable2

连接绑定控件

观察主从表的工作情况,这个方法几乎对所有的Delphi数据库
控件都是适用的。

第九节 BDE 的应用

BDE 是Borland开发的最成熟的数据控制对象集,它对于像Oracle
这些第三方数据库,由于是直接由开发商提供了驱动程序,所以执行
效率比较高,到现在仍然受到不少程序员的欢迎。
它里面主要是table和Query两个数据源控件。从性能和使用方法
都和ADOtable和ADOQuery 相似的(Recordset属性和方法除外,这是
ADO 特有的)值得注意的是,它们连接数据源的方式采用了别名,也
就是应用的时候事先一定要设计好ODBC数据源,并给定数据源一个别
名。
属性
DatabaseName=别名
在table中,TableName=表名
在Query中,SQL=SQL命令
然后
Active=true
就连接上了。
ODBC数据源的别名,实际上是写入计算机的注册表的,所以如果
希望通过程序来设置别名,可以通过程序直接改写注册表来解决,具
体请看实例。

一、Ttable组件

该组件用来表示数据库的一个基表,它的主要属性如下:

DatabasName:数据源的名字
TableName: 表的名字
Active: true表示活动

Filter: 数据筛选
Filtered: 控制Filter的使用,False则筛选不起作用。
FilterOptions:其中包括两个选项
foCaseInsensitive 决定是否严格按照Filter条件中大
小写匹配查询,true为大小写匹配。
foNoPartialCompare
“*”是否作为数字统配符存在,true 则视为单个字
符,false则视为统配符。
IndexFieldNames 设置那些字段进行记录的排序,逗号间隔,这些
字段必须是关键字端。
IndexName 设置基表的第二个索引字段,如果这个属性是空的,
则基表按默认索引排序。
MasterSource 在主从表关系中,设置从表关联的主表对应数据源。
MasterFields


别名和表名调用的实例:

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