文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发DelphiDelphi开发工具中如何访问数据库结构
精品推荐
特别推荐
·利用Delphi编写Socket通信程序
·拦截其它程序的网络数据封包
·Delphi编程根据IP地址得到主机名
·Delphi 程序员代码编写标准指南
·用DELPHI开发自动化服务器
·将日期转化为汉语的形式
·加密ACCESS数据库增加安全性
·使用TCP/IP协议实现聊天程序
·在Delphi中控制扫描仪
热点TOP10
·Delphi中DLL的创建和使用(1)
·用Delphi实现WinSocket高级应用
·利用Delphi编写Socket通信程序
·DBGrid使用全书(三)
·DELPHI多层分布式开发(2)
·实现关键字查找word文档里相匹配的内容
·实现高速文件拷贝
·用Delphi实现动态获取版本信息
·使用TCP/IP协议实现聊天程序
·在Delphi中控制扫描仪
·实现webbrowser中的打印、复制、全选等编辑功能
·拦截其它程序的网络数据封包
·DELPHI多层分布式开发(1)
·Delphi中利用钩子实现QQ聊天窗口的修改
·Delphi下的ADO使用方法!
·Delphi下“培养”自己的简单木马
·Delphi多层开发方案比较
·Delphi数据库控件使用入门
·Delphi的拨号连接类
·在Delphi中实现数据分析模块的动态报表

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

日期:2007年7月14日 作者: 查看:[大字体 中字体 小字体]


  在开发数据库软件的过程中,由于实际需求不断发生变化,数据库结构也将随之改变,这会给文档更新工作带来很大困难。如果能够用软件自动获得数据库的结构信息并生成报告文件,将减轻软件的文档工作量。

  1 TSession对象

  为了管理应用程序与数据库系统的多重连接,Delphi提供了TSession对象。Delphi中的数据访问对象(Data Access Object)均包含Session属性,用来指向与之对应的TSession对象。如果应用程序需要同时建立对数据库系统(尤其是BDE数据库)的多个连接,就必须定义多个TSession对象,属于不同连接的数据访问对象的Session属性不能相同,否则将无法同时使用。

  在数据库应用程序运行时,Delphi会自动生成一个缺省TSession对象,名字为Session,数据访问对象在缺省情况下均与之相连。

  TSession对象除了自动管理数据库连接外,还能够取得数据库信息。下面就分别介绍这方面的函数。

  2 获取数据库别名信息

  TSession对象在获取数据库别名方面有3个函数/过程:

以下是引用片段:
  procedure TSession.GetAliasNames(List: TStrings);
  procedure TSession.GetAliasParams(const AliasName: string; List: TStrings);
  function TSession.GetAliasDriverName(const AliasName: string): string;

  GetAliasNames用来获得所有的BDE别名名称,结果保存在变量List中;GetAliasParams用来获得某个BDE别名的参数,结果保存在变量List中;GetAliasDriverName用来取得某个BDE别名使用的数据库驱动程序的名字。

  这3个函数不太复杂,就不多加介绍了。一般情况下,我们只需要使用GetAliasNames即可。

  3 获取数据表信息

  在知道了数据库别名后,如何取出该别名对应数据库中包含的数据表呢?可以使用TSession对象中的 GetTableNames过程。该过程描述如下:

以下是引用片段:
procedure TSession.GetTableNames(const DatabaseName, Pattern: string;

  各参数意义如下:

  DatabaseName:数据库别名;

  Pattern:过滤器,用来过滤结果,可以使用通配符。比如“*.dbf”,“t*” 等。如果为空字符串,则表示不需要过滤;

  Extensions:为布尔量,表示是否显示数据表扩展名。该参数只对DBF和Paradox数据库有效;

  SystemTables:为布尔量,表示是否显示系统数据表;

  List:为返回结果,结果按字母顺序排序。

  4 获取数据域和索引信息

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

  5 应用实例

  使用下面的程序片段即可获得指定数据库中指定表的域定义和索引定义。ListBox1、ListBox2 和 ListBox3 为Form1中定义的三个列表框,用于显示结果。

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

  6 小结

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

  参考文献

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

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

  [3] 大富翁http://www.delphibbs.com/

  收稿日期:4月4日 修改日期:4月9日

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

(出处:清风网络学院






上一篇:jsp2.0新特性

下一篇:图文:详解数据库Oracle 11g的基本安装

Delphi开发工具中如何访问数据库结构 相关文章:
·教你学习如何破解XP登陆密码
·教你如何复制别人的QQ空间
·“黑客”教你如何远程控制计算机
·将系统装到U盘中 如何自制XP@USB启动盘
·如何显示输入法图标(输入法图标消失)
·如何建立一个网站?规划、设计、目的、原则、宣传
·如何在QQ空间加入播放器代码
·如何查出QQ好友精确地理位置
·教你如何制作QQ空间FLASH导航条
·如何实现局域网打印机共享
Delphi开发工具中如何访问数据库结构 相关软件:
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·中国少年儿童智力开发百科全书(上中下)高清PDF全彩图书
·如何安装双系统
·U盘超级工具大全
·灵豚课件制作工具——课件精灵v1.0 beta
·电脑装机、系统维护工具盘 2003版
·如何加固Windows XP 主机安全
·如何评估您的商机
·王牌超级工具箱V13.5
·Cooolsoft MP3 Sound Cutter (音频截取工具) V1.41 绿色版

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot