六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

用Delphi程序維護Paradox 數據表的索引

[摘要]在 數 據 庫 編 程 中, 索 引 文 件 對 于 改 善 數 據 查 詢 速 度 有 著 舉 足 輕 重 的 作 用, 充 分 使 用 索 引 文 件 可 以 極 大 改 善 數 據 庫 應 用 程 序 的 性 能, 這 一 點 恐 怕 是 難 以 否 認 的.   在 應 用 過 程 中, ...
在 數 據 庫 編 程 中, 索 引 文 件 對 于 改 善 數 據 查 詢 速 度 有 著 舉 足 輕 重 的 作 用, 充 分 使 用 索 引 文 件 可 以 極 大 改 善 數 據 庫 應 用 程 序 的 性 能, 這 一 點 恐 怕 是 難 以 否 認 的.

  在 應 用 過 程 中, 用 戶 的 查 詢 條 件 可 能 是 多 種 多 樣 的, 如 果 能 根 據 用 戶 查 詢 建 立 和 選 擇 索 引, 對 于 保 證 應 用 程 序 的 性 能, 無 疑 是 很 有 幫 助 的.

  另 外, 由 于 停 電 等 意 外 事 故 很 容 易 造 成 數 據 庫 中 的 索 引 文 件 未 及 時 更 新 甚 至 于 損 壞, 此 時 如 果 應 用 程 序 再 出 幾 個 錯 誤 信 息, 無 疑 將 使 用 戶 的 處 境 雪 上 加 霜.

  因 而, 動 態 維 護 數 據 庫 索 引 文 件, 將 使 你 的 數 據 庫 應 用 程 序 更 有 穩 定 性 和 可 靠 性. 筆 者 將 以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( 'Create Index NameIndex On MyComm(ID,Name)' );
  execSql;
end;
 

二. 刪 除 表 索 引
  (1) 用Table.DeleteIndex 來 實 現
  DeleteIndex 只 能 刪 除 次 索 引 名 稱.
  方 法:DeleteIndex( IndexName )
  其 中:( 詳 見Delphi 幫 助)
  IndexName: 次 索 引 名 稱.

  下 面 是 一 個 例 子:

  假 設 有 一 個 存 放 通 訊 錄 數 據 表MyComm.DB( 類 型 為Paradox) 存 放 于 本 地 目 錄

  d:\mynote 下, 現 有 一 個 次 索 引( 索 引 域 為 編 號ID 和 姓 名Name, 索 引 名 稱 為NameIndex), 將 刪 除 之.

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

  {刪除次索引}
  DeleteIndex('NameIndex');
  
  close;
end;
 

  (2) 用SQL 來 實 現
  在SQL 語 法 中, 用 來 刪 除 索 引 的 語 句 是:
  Drop Index TableName.IndexName
  要 刪 除 次 索 引 時,IndexName 為 一 個 次 索 引 的 名 稱, 如'MyTable.MySecIndex1' 等.
  要 刪 除 主 索 引 時,IndexName 為'primary', 如'MyTable.primary'; 值 得 注 意 的 是, 在 刪 除 主 索 引 成 功 后, 數 據 表 的 所 有 次 索 引 也 自 動 刪 除.

  下 面 是 一 個 例 子:
  假 設 有 一 個 存 放 通 訊 錄 數 據 表MyComm.DB( 類 型 為Paradox) 存 放 于 本 地 目 錄
  d:\mynote 下, 已 定 義 一 個 主 索 引( 索 引 域 為 編 號ID) 和 一 個 次 索 引( 索 引 域 為 編 號ID 和 姓 名Name, 索 引 名 稱 為NameIndex).
  現 在 因 為 索 引 損 壞, 要 刪 除 索 引, 以 便 重 新 索 引.

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

  {刪除次索引NameIndex }
sql.clear;
sql.add( 'Drop Index MyComm.NameIndex' );
execSql;

  {刪除主索引 }
sql.clear;
sql.add( 'Drop Index MyComm.Primary' );
execSql;
end;
 

三. 注 意 事 項:
  (1) 在 索 引 更 改 時, 應 保 證 對 應 的 數 據 表 可 以 以 獨 占 方 式(Exclusive=true) 打 開, 否 則 會 引 起 錯 誤.
  (2) 上 述 方 法 略 加 修 改 后, 也 可 用 于dBase,Oracle 等 其 它 數 據 庫 的 數 據 表.
  (3) 如 果 需 要 重 新 對 索 引 文 件 進 行 索 引, 請 參 考BDE 的Dbi 函 數 說 明:
  RegenIndex, RegenIndexes.
  (4) 以 上 程 序 在Delphi3.0 下 測 試 通 過。


主站蜘蛛池模板: 亚洲影音先锋 | 中文字幕在线有码高清视频 | 四虎必出精品亚洲高清 | 欧美一级特黄aaaaaa在线看首页 | 日韩欧美中国a v | 青青色在线| 亚洲影视在线观看 | 香蕉欧美成人精品a∨在线观看 | 日韩亚洲欧美日本精品va | 日韩精品在线视频观看 | 四虎永久免费地址在线观看 | 日本无吗免费一二区 | 日本免费网站视频 | 亚洲精品 欧美 | 一本到视频在线观看 | 青青草中文字幕 | 日韩精品欧美国产精品忘忧草 | 色一欲一性一乱一区二区三区 | 任我鲁这里有精品视频在线播 | 亚洲免费观看 | 色噜噜视频影院 | 午夜激情福利网 | 青娱乐九色 | 天天五月天 | 收集最新中文国产中文字幕 | 天美传媒麻豆自制剧 | 日韩 欧美 国产 亚洲 制服 | 一级做a爰片性色毛片视频图片 | 欧美一区二区三区久久综合 | 天堂中文在线观看 | 青青青免费高清在线观看视频在线 | 午夜影院免费 | 午夜在线观看福利 | 人人干人人看 | 日本成人激情视频 | 青青草原在线新免费 | 欧美一区二区激情三区 | 青青草原国产视频 | 伊人网在线观看 | 日韩精品导航 | 中文字幕欧美成人免费 |