在开发数据库软件的过程中由于实际需求不断发生变化数据库结构也将随之改变这会给文档更新工作带来很大困难如果能够用软件自动获得数据库的结构信息并生成报告文件将减轻软件的文档工作量
TSession对象
为了管理应用程序与数据库系统的多重连接Delphi提供了TSession对象Delphi中的数据访问对象(Data Access Object)均包含Session属性用来指向与之对应的TSession对象如果应用程序需要同时建立对数据库系统(尤其是BDE数据库)的多个连接就必须定义多个TSession对象属于不同连接的数据访问对象的Session属性不能相同否则将无法同时使用
在数据库应用程序运行时Delphi会自动生成一个缺省TSession对象名字为Session数据访问对象在缺省情况下均与之相连
TSession对象除了自动管理数据库连接外还能够取得数据库信息下面就分别介绍这方面的函数
获取数据库别名信息
TSession对象在获取数据库别名方面有个函数/过程
以下是引用片段
procedureTSessionGetAliasNames(List:TStrings);
procedureTSessionGetAliasParams(constAliasName:string;List:TStrings);
functionTSessionGetAliasDriverName(constAliasName:string):string;
GetAliasNames用来获得所有的BDE别名名称结果保存在变量List中;GetAliasParams用来获得某个BDE别名的参数结果保存在变量List中;GetAliasDriverName用来取得某个BDE别名使用的数据库驱动程序的名字
这个函数不太复杂就不多加介绍了一般情况下我们只需要使用GetAliasNames即可
获取数据表信息
在知道了数据库别名后如何取出该别名对应数据库中包含的数据表呢?可以使用TSession对象中的 GetTableNames过程该过程描述如下
以下是引用片段
procedureTSessionGetTableNames(constDatabaseNamePattern:string;
各参数意义如下
DatabaseName数据库别名;
Pattern过滤器用来过滤结果可以使用通配符比如*dbft* 等如果为空字符串则表示不需要过滤;
Extensions为布尔量表示是否显示数据表扩展名该参数只对DBF和Paradox数据库有效;
SystemTables为布尔量表示是否显示系统数据表;
List为返回结果结果按字母顺序排序
[] []