网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用Delphi程序维护Paradox 数据表的索引
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

  在 数 据 库 编 程 中, 索 引 文 件 对 于 改 善 数 据 查 询 速 度 有 着 举 足 轻 重 的 作 用, 充 分 使 用 索 引 文 件 可 以 极 大 改 善 数 据 库 应 用 程 序 的 性 能, 这 一 点 恐 怕 是 难 以 否 认 的.

  在 应 用 过 程 中, 用 户 的 查 询 条 件 可 能 是 多 种 多 样 的, 如 果 能 根 据 用 户 查 询 建 立 和 选 择 索 引, 对 于 保 证 应 用 程 序 的 性 能, 无 疑 是 很 有 帮 助 的.

  另 外, 由 于 停 电 等 意 外 事 故 很 容 易 造 成 数 据 库 中 的 索 引 文 件 未 及 时 更 新 甚 至 于 损 坏, 此 时 如 果 应 用 程 序 再 出 几 个 错 误 信 息, 无 疑 将 使 用 户 的 处 境 雪 上 加 霜.

  因 而, 动 态 维 护 数 据 库 索 引 文 件, 将 使 你 的 数 据 库 应 用 程 序 更 有 稳 定 性 和 可 靠 性. 笔 者 将 以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]
  其 中:
  ixPrimary : 建 立 的 索 引 为 主 索 引( 不 适 用 于dBase 数 据 表).
  ixUnique : 不 允 许 重 复 值 的 索 引.
  ixDescending: 按 降 序 索 引.
  ixCaseInsensitive: 索 引 排 序 时 按 忽 略 大 小 写( 不 适 用 于dBase 数 据 表).
  ixExpression: 建 立 表 达 式 索 引( 适 用 于Delphi3.0, 仅 适 用 于dBase 数 据 表).
  ixNonMaintained: 是 否 不 需 要BDE 自 动 维 护( 适 用 于Delphi1.0).

  下 面 是 一 个 例 子:

  假 设 有 一 个 存 放 通 讯 录 数 据 表MyComm.DB( 类 型 为Paradox) 存 放 于 本 地 目 录d:\mynote 下, 现 建 立 一 个 主 索 引( 索 引 域 为 编 号ID) 和 一 个 次 索 引( 索 引 域 为 编 号ID 和 姓 名Name, 索 引 名 称 为NameIndex).

with table1 do
begin
  close;
  Exclusive := true;
  DatabaseName := ''d:\MyNote'';
  TableName := ''MyComm.DB'';
  Open;

  {建立主索引 }
  AddIndex('''',''ID'',[ixPrimary]);

  {建立次索引 }
  AddIndex(''NameIndex'',''ID;Name'',);
  
  close;
end;


(2)用SQL来实现
  对Paradox数据表来说,用SQL只能建立次索引.
  在SQL语法中,用来建立索引的语句是:
Create Index IndexName On TableName
(IndexField1,IndexField2,..)
  其中:
IndexName为一个次索引的名称,如MySecIndex1等.
TableName为对应数据表的名称,如MyTable等.
TableName后面为索引域列表,所有索引域有圆括号括起来,
  各索引域之间用逗号隔开.
 

  下 面 是 一 个 例 子:

  假 设 有 一 个 存 放 通 讯 录 数 据 表MyComm.DB( 类 型 为Paradox) 存 放 于 本 地 目 录

  d:\mynote 下, 现 建 立 一 个 次 索 引( 索 引 域 为 编 号ID 和 姓 名Name, 索 引 名 称 为NameIndex).

  with query1 do
  begin
  close;
  DatabaseName := ''d:\MyNote'';

{建立次索引NameIndex}
sql.clear;
sql.add(
  • 下一篇资讯: Delphi实现NetBIOS广播收发
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号