用Delphi程序维护Paradox数据表的索引
在数据库编程中,索引文件在提高数据查询速度方面起着重要的作用。不可否认,充分利用索引文件可以极大地提高数据库应用程序的性能。
在应用过程中,用户的查询条件可能是多种多样的。如果能够根据用户的查询建立和选择索引,无疑有助于保证应用程序的性能。
此外,由于停电等意外事故,很容易导致数据库中的索引文件得不到及时更新,甚至损坏。这时候如果应用程序多给出几条错误信息,无疑会让用户的情况更糟。
因此,数据库索引文件的动态维护将使您的数据库应用程序更加稳定可靠。笔者将以Delphi编程中常用的Paradox数据库为例,介绍数据库索引文件的动态维护。
Paradox数据表索引分为一级索引(主键索引)和二级索引(二级索引),其中一级索引对应。PX文件和二级索引对应。XG*和。YG*文件。
I .创建表索引
(1)使用表。添加索引以实现
方法:Addindex(索引名称、字段名称、选项)
其中:(详见Delphi帮助)
Index:索引的名称,仅在指定辅助索引时有效。
FieldNames:索引字段,可以指定多个字段,用分号隔开,比如field 1;Field2字段3
选项:索引选项,可以是[ixprimary,ixunique,ixdescending,ixcaseinsensitive,ixexpression]。
其中包括:
IxPrimary:建立的引用为主引用(不适用于dBase数据表)。
ixUnique:不允许具有重复值的引用。
ixDescending:按降序引用。
ixcasensitive:引号按升序或降序排序(不适用于dBase数据表)。
ixExpression:建立达表报价(适用于Delphi3.0,仅适用于dBase数据表)。
ixNonMaintained:是否不需要BDE自动维护(适用于Delphi1.0)。
下面是一个例子:
假设有一个数据表MyComm。DB (type Paradox)用于存储本地目录d:\mynote中存储的地址簿。现在建立一级索引(索引域为编号ID)和二级索引(索引域为编号ID和名称名称名称,索引名称为名称索引)。
与table1一起
开始
关闭;
DatabaseName:= d:\ my note;
TableName := MyComm。DB;
打开;
{建立主索引}
addindex(,id,[IX primary]);
{建立辅助索引}
AddIndex(NameIndex,ID;姓名,[]);
关闭;
end;
(2)用SQL实现
对于Paradox数据表,只能用SQL建立二级索引。
在SQL语法中,用于构建索引的语句是:
对TableName
(IndexField1,IndexField2,..)
其中:
Index是辅助索引的名称,如MySecIndex1。
Table是相应数据表的名称,例如MyTable。
表后面是索引字段列表,所有这些字段都用括号括起来。
索引字段用逗号分隔。
下面是一个例子:
假设有一个数据表MyComm。DB (type Paradox)存储在本地目录地址簿中。
D: \在d:\mynote下,现在建立了一个二级索引(索引域为number ID和Name name,索引名为NameIndex)。
with query 1 do
begin
close;
DatabaseName:= d:\ my note;
{建立二级索引名称索引}
SQL . clear;
sql.add(在MyComm(ID,Name)上创建索引NameIndex
exec SQL;
end;
0条评论