Delphi开发工具中如何访问数据库结构[2]

Delphi开发工具中如何访问数据库结构[2],第1张

获取数据域和索引信息

在取得了数据表信息后 应使用TTable对象访问该数据表的具体信息 对应函数如下

以下是引用片段 procedure TDataSet GetFieldNames(List: TStrings)procedure TTable GetIndexNames(List: TStrings)

GetFieldNames用来取得数据表中的各个域名 GetIndexNames用来取得数据表中的各个索引名

另外 可以进一步使用TDataset和TTable中的两个属性TDataSet FieldDefs Items[] 和 TTable IndexDefs Items[]来访问具体的数据域信息和索引信息 它们分别是由TFieldDef和TIndexDef组成的数组

TFieldDef描述如下

TIndexDef描述如下

TFieldType定义如下

以下是引用片段 TFieldType = (ftUnknown  ftString  ftSmallint  ftInteger  ftWord  ftBoolean ftFloat ftCurrency  ftBCD  ftDate  ftTime  ftDateTime  ftBytes  ftVarBytes ftAutoInc ftBlob  ftMemo  ftGraphic  ftFmtMemo  ftParadoxOle  ftDBaseOle ftTypedBinary ftCursor)

TIndexOptions定义如下

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

它们的具体意义可以参见Delphi帮助

应用实例

使用下面的程序片段即可获得指定数据库中指定表的域定义和索引定义 ListBox ListBox 和 ListBox 为Form 中定义的三个列表框 用于显示结果

以下是引用片段 Var  Alias TableName:String Table :TTable Begin Alias:= fjs   TableName:= d*     //初始化 Session GetTableNames(Alias {别名}                       TableName {过滤器}                       True {是否显示文件扩展名(对DBF) }                       False {是否显示系统表}                       ListBox Items) If ListBox Items Count= then   Begin     MessageDlg( 数据库 +Alias+ 中没有数据表 +TableName mtError [mbOK] )   Exit End Table :=TTable Create(nil) Table DatabaseName :=Alias Table TableName := ListBox Items Strings[ ] {取得表中字段名及索引名} Table Open if Table Active then begin Table GetFieldNames(ListBox Items)    Table GetIndexNames(ListBox Items) end //… 此时结果在ListBox 和ListBox 中 // Table Destroy end

小结

通过上面讨论和实例证明 利用Delphi语言开发数据库软件管理系统 关键技术都已得到解决

参考文献

[ ] (李维 编著) 《DELPHI 高效数据库程序设计》机械工业出版社

[ ] 郭旭等 著 《Delphi 应用开发指南》清华大学出版社

[ ] 大富翁 // delphibbs /

收稿日期 月 日 修改日期 月 日

作者简介 于海生 男 年生于辽宁省丹东市 黑龙江大庆人 年毕业于辽宁化工大学计算机科学与技术专业 助理工程师 研究方向为钻井计算机软件开发与应用

lishixinzhi/Article/program/Delphi/201311/8543

连接Access数据库尽量用ADO组件而不要用BDE。BDE太老了,这主要是用来连接Borland的Paradox数据库的。用BDE连接Access数据库,必须创建ODBC数据源,而这个ODBC数据源是保存在Windows注册表中的。等以后发布你的应用程序时,你必须在用户的机器上,也要创建ODBC数据源,否则就无法连接数据库。 而使用ADO组件,就不用那样麻烦了。

设置ADOConnection的ConnectionString 属性,并将LoginPrompt属性为:false,就不会再出现密码输入对话框了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9897944.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存