獲取數據域和索引信息
在取得了數據表信息後應使用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