熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

Delphi開發工具中如何訪問數據庫結構[2]

2013-11-11 21:07:02  來源: Delphi編程 

   獲取數據域和索引信息

  在取得了數據表信息後應使用TTable對象訪問該數據表的具體信息對應函數如下

以下是引用片段
  procedure TDataSetGetFieldNames(List: TStrings);
  procedure TTableGetIndexNames(List: TStrings);

  GetFieldNames用來取得數據表中的各個域名GetIndexNames用來取得數據表中的各個索引名

  另外可以進一步使用TDataset和TTable中的兩個屬性TDataSetFieldDefsItems[] 和 TTableIndexDefsItems[]來訪問具體的數據域信息和索引信息它們分別是由TFieldDef和TIndexDef組成的數組

  TFieldDef描述如下

點擊放大此圖片

  TIndexDef描述如下

點擊放大此圖片

  TFieldType定義如下

以下是引用片段
  TFieldType = (ftUnknown ftString ftSmallint ftInteger ftWord ftBoolean
  ftFloatftCurrency ftBCD ftDate ftTime ftDateTime ftBytes ftVarBytes
  ftAutoIncftBlob ftMemo ftGraphic ftFmtMemo ftParadoxOle ftDBaseOle
  ftTypedBinaryftCursor);

  TIndexOptions定義如下

以下是引用片段
TIndexOptions = set of (ixPrimary ixUnique ixDescending ixExpression ixCaseInsensitive);

  它們的具體意義可以參見Delphi幫助

   應用實例

  使用下面的程序片段即可獲得指定數據庫中指定表的域定義和索引定義ListBoxListBox 和 ListBox 為Form中定義的三個列表框用於顯示結果

以下是引用片段
Var  AliasTableName:String Table:TTable Begin Alias:=fjs  TableName:=d*    //初始化 SessionGetTableNames(Alias {別名}                       TableName {過濾器}                       True {是否顯示文件擴展名(對DBF) }                       False {是否顯示系統表}                       ListBoxItems) If ListBoxItemsCount= then   Begin     MessageDlg(數據庫+Alias+中沒有數據表+TableName mtError [mbOK] )   Exit End Table:=TTableCreate(nil) TableDatabaseName :=Alias TableTableName := ListBoxItemsStrings[] {取得表中字段名及索引名} TableOpen if TableActive then begin TableGetFieldNames(ListBoxItems)    TableGetIndexNames(ListBoxItems) end //… 此時結果在ListBox和ListBox中 // TableDestroy end

   小結

  通過上面討論和實例證明利用Delphi語言開發數據庫軟件管理系統關鍵技術都已得到解決

  參考文獻

  [] (李維 編著)《DELPHI 高效數據庫程序設計》機械工業出版社

  [] 郭旭等 著《Delphi應用開發指南》清華大學出版社

  [] 大富翁http://wwwdelphibbscom/

  收稿日期日 修改日期

  作者簡介於海生年生於遼寧省丹東市黑龍江大慶人年畢業於遼寧化工大學計算機科學與技術專業助理工程師研究方向為鑽井計算機軟件開發與應用

[]  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/8543.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.