delphi的程序执行顺序

delphi的程序执行顺序,第1张

这程序点击按钮后,只有执行了一个函数:MyProc(i);

MyProc(i)的功能是对参数值递增3,并且是过程形式;另一个是递增2,并且是函数形式;

写成TMyClass类的形式作者的本意可能是为了突出 类 的应用,多个函数集中到一个类显得有条理些;当然也可以写成单个函数,可以不要TMyClass类。

Type

TMyClass = class

procedure MyProc(var x: Integer);

function MyFun (var x: Integer): Integer;

end;

括号里面的是形式参数。

在这一章里我们主要介绍Delphi的数据访问部件的层次结构 多部件之间的关系 部件的属性 方法 事件以及各部件的应用 这些部件包括

● TSession部件

● 数据集部件(TTable和TQuery)

● TDatasource部件

● 字段对象TField

● 字段编辑器的使用

● TReport部件和TBatchMove部件

我们对这些部件的属性 方法和事件进行一般性的描述 读者在实际使用Delphi开发应用程序时 还可以通过联机帮助获得有关部件更详细的信息

Delphi数据访问部件的层次结构

Delphi提供了强大的开发数据库应用程序的能力 它给用户提供了大量的数据访问部件 以方便程序设计人员开发数据库应用程序 这些部件中 有些部件继承了另一些部件的属性 方法和事件 也就是说多部件之间存在着继承和被继承的关系 各部件的这种关联便构成了一个层次结构

TSession是全局性的部件 在应用程序运行时 它自动地建立 在设计阶段和运行过程中它是一个不可见的部件

TDatabase部件是为开发客户/服务器数据库应用程序时 设置登录的数据库的有关参数的 它在数据访问部件页上

TDataset部件是不可见的 TTable和TQuery部件是由它派生而来的 这两个部件一般被称为数据集部件 它们在数据访问部件页上

TDatasource部件是连接数据集部件和数据浏览部件的桥梁 它在数据访问部件页上

TFields部件对应于数据库表中的实际字段 它既可以在应用程序的运行过程中动态地生成也可以在程序设计阶段用字段编辑器创建 它是不可见的部件 在程序中我们可以通过TField部件来访问数据库记录的各个字段值

Tsession部件及其应用

TSession部件一般用得较少 但它对于一些特殊的应用是很有用的 在每一个数据库应用程序运行时Delphi自动地创建一个TSession部件 程序设计人既不能看见该部件也不能显示地创建一个TSession 部件 但是我们可以在应用程序中全局性地使用TSession部件的属性 方法

TSession部件的重要属性及作用

TSession部件的许多重要属性是用于控制数据库应用程序与数据库的连接的 在一个应用程序中 可以全局性地设置TSession的有关属性值 对与之相连接的磁盘上的数据库进行控制 TSession部件主要有下列属性

Database属性 是TSession中可以进行连接的所有数据库的数据库名字列表 这些数据库的名字常常是实际数据库的别名 包括数据库的路径 用户名 用户登录口令等参数

DatabaseCount属性 是TSession中可以进行连接的所有数据库的数量 它是一个整数

KeepCounnections属性 是一个布尔型属性 用它说明应用程序是否保持与一个非活动数据库的连接 因为对于一个数据库 当该数据库中没有相应的数据集部件(TTable或TQuery)被打开时 该数据库将自动地变成非活动的数据库 缺省情况下 KeePcounnections的值是True 就是说应用程序总是保持着与数据库的连接 即使数据库变成了非活动的数据库时 也是如此 如果将KeepConnections属性设置成False 那么当数据库由活动状态变成非活动状态时 应用程序与该数据库的连接也随之中断

NetFileDir属性 说明BDE网络控制文件的路径名

PrivateDir属性 说明存取临时文件的路径名

TSession部件的方法

TSession部件中的大部分方法是用于向用户提供与应用程序相连接的数据库的信息 如数据库的名字及别名 数据库中的表名以及数据库引擎BDE的有关参数等 在设计数据库应用程序时 想要获取有关数据库的信息 调用TSession部件的下列方法 将会大大简化程序的设计

GetAliasNames方法 调用该方法 我们可以获得数据库引擎BDE中定义的数据库别名

GetAliasParams方法 该方法主要用于获取我们在BDE中定义数据库别名时所说明的参数值 如BDE所在的目录路径以及实际名称等

GetDatabaseNames 方法 调用该方法可以帮助我们获得当前应用程序可以进行连接的所有数据库的名字 数据库的名字是用户使用BDE工具定义的实际数据库的别名

GetDriverNames方法 数据库引擎BDE可以与多种数据库管理系统相连接 如客户/服务器数据库管理系统Oracle Sybase以及本地数据库管理系统dBASE Paradox等 BDE与每一种数据库管理系统进行连接时 都有相应的驱动程序 而且这些驱动程序都可以选择地安装 通过调用GetDriverNames方法 我们可以获得当前BDE安装的数据库驱动程序的名字

GetDriverParams方法 BDE的数据库驱动程序中包含着多个参数 如支持的民族语言 DBMS的版本号 文件块大小等 对于服务器上的DBMS 还有数据库服务器的名字等等

GetTableNames方法 因为每一个数据库都是由多个数据库表组成的 我们通过说明数据库名 然后调用GetTableNames方法 便可以获得该数据库中全部的数据库表的名字

上述这些方法在调用时都需要一个字符串列表作为参数 而且都返回一个字符串列表的值

TSession部件还有一个叫DropConnections的方法用于控制应用程序与数据库的连接 当调用DropConnections方法时 应用程序与所有的数据库的连接将会切断

TSession部件应用举例

例 :我们创建一个应用程序 通过调用TSession有关的方法获取当前应用程序可以进行连接的数据库的名字以及获取其中任意一个数据库中的全部数据库表的名字

通过TSession部件获取数据库的有关信息

窗体中主要使用了两个列表框 其中列表框DatabaselistBox用于显示数据库的名字 列表框TablelistBox用于显示数据库中的表名 程序运行完后数据库的名字显示在DatabaselistBox列表框中 当用户单击DatabaselistBox列表框中的数据库名时 该数据库全部的数据库表的名字将会显示在TablelistBox列表框中 有关的程序代码如下

lishixinzhi/Article/program/Delphi/201311/25161

数据集部件的事件

数据集部件TTable或TQuery具有很多的事件 为这些事件编写相应的程序代码可以进行有效性验证 计算可计算字段的值 确认对数据库表的多种 *** 作等等 这些事件及其描述如表 所示

表 数据集部件常用的事件

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

事 件 描 述

───────────────────────────────────

BeforeOpen Afteropen 在数据集部件被打开之前/之后被触发

───────────────────────────────────

BeforeClose Afterclose 在数据集部件被关闭之前/之后被触发

───────────────────────────────────

BeforeInsert AfterInsert 在数据集部件进入插入状态之前/之后被触发

───────────────────────────────────

BeforeEdit AfterEdit 在数据集部件被编辑之前/之后被触发

───────────────────────────────────

BeforePost AfterPost 在数据集部件投寄被修改的记录之前/之后被触发

───────────────────────────────────

BeforeCancel AfterCancel 在数据集部件取消前一步 *** 作之前/之后被触发

───────────────────────────────────

BeforeDelete AfterDelete 在数据集部件删除当前记录之前/之后被触发

───────────────────────────────────

OnNewRecord 当建立一条新记录时被触发

───────────────────────────────────

OnCalcFields 当为表中的计算字段计算字段值时被触发

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

TTable部件及应用

在前一节里我们介绍了数据集部件TTable 和TQuery 的共同的一些属性和方法 TTable部件是Delphi数据库编程中要经常使用的最重要的部件之一 它是数据库应用程序访问数据库时必须使用的数据集部件之一 在这一节里 我们重点介绍TTable部件特有的属性和方法 TTable部件所有的属性 方法和事件都可以在联机帮助中查到

TTabel部件主要的属性

DatabaseName属性和TableName属性

DatabaseName属性是说明数据库应用程序所 *** 作的数据库的名字 它可以是由BDE定义的数据库的别名 显式说明的数据库文件所在的磁盘路径或者由TDatabase部件定义的一个数据库名 DatabaseName属性常常是一个由BDE定义的数据库的别名 使用由BDE定义的数据库的别名代替数据库实际所在的路径和名字 好处是当实际的数据库存放的位置发生变化时 只需利用BDE简单地设置一下该数据库的别名 而数据库应用程序无需修改 有关BDE的使用请参看BDE的设置应用 TabelName属性用以说明当前TTable部件所连接的实际的数据库表 这两个属性一般都在设计阶段指定 当然在程序运行过程中也可以设置 但是要修改这两个属性时 必须要在TTabel的Active属性为False时进行 当TTable的Active属性为True时 这两个属性是不能被修改和设置的

TableType属性

该属性说明与TTable部件相连接的数据库表的类型 当TableType属性设置成Default时 该属性所说明的数据库表的类型由数据库文件的扩展名决定

● 若数据库文件的扩展名为 DB或没有扩展名 表的类型是Paradox表

● 若数据库文件的扩展名为 DBF时 表的类型是dBASE表

● 若数据库文件的扩展名为 TXT时 表的类型是ASCII表

如果TableType属性不设定为Default 那么与TTable 部件相连的数据库表的类型由TableType中的设置的值决定 不用考虑数据库文件的扩展名

KeyExclusive属性

该属性的一个作用是说明在数据库表中查找记录时 将记录移到与查找值相匹配的记录处还是将记录指针移到与查找值相匹配的记录后面一条记录处 该属性是布尔型变量 当它的值为False时(缺省情况下为False) 将记录指针移到相匹配的记录处 为True时 将记录指针移到相匹配记录的后面一条记录处 该属性另一个作用是在表中指定检索范围时 用来说明是否包括满足过滤条件的边界记录 当KeyExclusive的值为False时 检索范围包括边界记录 否则不包括边界记录 有关详细的 *** 作请参看 限定表中记录的检索范围

IndexFields属性和IndexFieldsCount属性

IndexFields的属性值是数据库表中字段名列表 它包含与TTable部件相连的数据库表中的全部索引字希 IndexFieldsCount属性说明表中索引字段的个数 这两个属性值都是只读的 只有在程序运行过程中可用

IndexName属性和IndexFieldNames属性

IndexName属性中存放著在建立数据库表时为数据库表定义的所有辅助索引名 它是一个辅助索引名列表 是只读属性 IndexFieldNames属性指定用于数据库表索引排序的字段名 多个字段名之间用分号隔开 例如对Customer DB表中的客户记录按邮政编码ZipCode和客户号码CustNo排序时可以设定IndexFieldNames的值为

ZipCode ; CustNo

在IndexFieldNames属性中指定的字段必须存在于相应的数据库表中 否则会导致错误 IndexName和IndexFieldName是互斥的 每次只能指定其中一个属性的值 不能同时为两个属性都指定属性值

lishixinzhi/Article/program/Delphi/201311/25157

以上就是关于delphi的程序执行顺序全部的内容,包括:delphi的程序执行顺序、DELPHI基础教程:数据访问部件的应用及编程(一)[1]、DELPHI基础教程:数据访问部件的应用及编程(二)[1]等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/10084469.html

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

发表评论

登录后才能评论

评论列表(0条)

保存