delphi 如何通过Tdataset数据集 获取数据库列名以及列数?

delphi 如何通过Tdataset数据集 获取数据库列名以及列数?,第1张

(1)数据库列数可以用“TDATASET”的“FieldCount”属性获得。

(2)数据库列名可以做一个循环得到,例如:

var

i:integer

begin

for i := 0 to Table1.FieldCount-1 do

showmessage(Table1.Fields[i].FieldName)

end

Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的前身,即是DOS时代盛行一时的"BorlandTurbo Pascal",最早的版本由美国Borland(宝兰)公司于1995年开发。主创者为Anders Hejlsberg。经过数年的发展,此产品也转移至Embarcadero公司旗下。Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。

由Borland公司推出的Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了d性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编译器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作--Delphi的每一个设计细节,都将带给您一份欣喜。

获取数据域和索引信息

在取得了数据表信息后 应使用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

db是dbase

数据库文件

,直接用记事本就可以打开,打开后可以看见里面的内容,但排列不规律,你必须得知道读取数据的方法才可以正确读取,(比如第一个字段要读取多少个字节,或者第一个字段需要从哪个位置开始读),如果使用程序读取的话,直接使用文件名.db就可以了.

可以用DBASE数据库打开,也可以用DELPHI等第三方开发工具!


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

原文地址:https://54852.com/sjk/10093800.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存