用Delphi程序维护Paradox 数据表的索引
2008-02-23 07:13:31来源:互联网 阅读 ()
在应用过程中,用户的查询条件可能是多种多样的,如果能根据用户查询建立和选择索引,对于保证应用程序的性能,无疑是很有帮助的.
另外,由于停电等意外事故很容易造成数据库中的索引文件未及时更新甚至于损坏,此时如果应用程序再出几个错误信息,无疑将使用户的处境雪上加霜.
因而,动态维护数据库索引文件,将使你的数据库应用程序更有稳定性和可靠性.笔者将以Delphi编程中常用的Paradox数据库为例,介绍数据库索引文件的动态维护.
Paradox数据表索引分为主索引(Primary Index)即关键字(Primary Key)索引和次索引(Secondary Index),其中主索引对应.PX文件,次索引对应.XG*和.YG*文件.
一.创建表索引
(1) 用Table.AddIndex来实现
方法:AddIndex( IndexName,FieldNames,Options )
其中:(详见Delphi帮助)
IndexName:索引名称,仅在指定次索引时有作用.
FieldNames:索引域,可指定多个域,各域之间用分号隔开,如Field1;Field2;Field3
Options:索引选项,可为[ixPrimary, ixUnique, ixDescending, ixCaseInsensitive, ixExpression]
其中:
下面是一个例子:
假设有一个存放通讯录数据表MyComm.DB(类型为Paradox)存放于本地目录d:\mynote下,现建立一个主索引(索引域为编号ID)和一个次索引(索引域为编号ID和姓名Name,索引名称为NameIndex).
(2)用SQL来实现
对Paradox数据表来说,用SQL只能建立次索引.
在SQL语法中,用来建立索引的语句是:
其中:
IndexName为一个次索引的名称,如MySecIndex1等.
TableName为对应数据表的名称,如MyTable等.
TableName后面为索引域列表,所有索引域有圆括号括起来,
各索引域之间用逗号隔开.
下面是一个例子:
假设有一个存放通讯录数据表MyComm.DB(类型为Paradox)存放于本地目录
d:\mynote下,现建立一个次索引(索引域为编号ID和姓名Name,索引名称为NameIndex).
二.删除表索引
(1) 用Table.DeleteIndex来实现DeleteIndex 只 能 删 除 次 索 引 名 称.
方法:DeleteIndex( IndexName )
其中:(详见Delphi帮助)
IndexName:次索引名称.
下面是一个例子:
假设有一个存放通讯录数据表MyComm.DB(类型为Paradox)存放于本地目录
d:\mynote下,现有一个次索引(索引域为编号ID和姓名Name,索引名称为NameIndex),将删除之.
(2)用SQL来实现
在SQL语法中,用来删除索引的语句是:
要删除次索引时,IndexName为一个次索引的名称,如MyTable.MySecIndex1等.
要删除主索引时,IndexName 为primary, 如MyTable.primary;值得注意的是,在删除主索引 成功后,数据表的所有次索引也自动删除.
下面是一个例子:
假设有一个存放通讯录数据表MyComm.DB(类型为Paradox)存放于本地目录
d:\mynote下,已定义一个主索引(索引域为编号ID)和一个次索引(索引域为编号ID和姓名Name,索引名 称为NameIndex).
现在因为索引损坏,要删除索引,以便重新索引.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash