没有合适的资源?快使用搜索试试~ 我知道了~
首页TClientDataSet用法
TClientDataSet用法
需积分: 9 7 下载量 155 浏览量
更新于2023-06-29
评论
收藏 143KB DOC 举报
TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端。TClientDataSet最大的特点是它不依赖于BDE(Borland Database Engine),但它需要一个动态链接库的支持,这个动态链接库叫DBCLIENT.DLL。在客户端,也不需要用TDatabase构件,因为客户端并不直接连接数据库。
资源详情
资源评论
资源推荐
DataSetProvider 的 Option 属性
看看远端数据模块里的 DataSetProvider 的 Option 属性是否设置正确!Provider 控件
的 Options 属性值是一个集合,用于设置有关打包和传递的选项,像显示哪些字段、允许
哪种更新方式等等。
1poFetchBlobsOnDemand:若包含此项,则表示数据包中不包括 BLOB 字段。不过,
如果客户端的 TclientDataSet 控件的 FetchOnDemand 属性设为 True,那么客户端还
是能自动地请求这些数据值;否则,客户端应用程序必须使用客户数据集的 FetchBlobs
方法来检索 BOLB 数据。
2poFetchDetailsOnDemand:[当用嵌套表的方式处理 Master/Detail 关系时,这里的
Provider 表示主/明细表中的主表。若包含此项,则 Detail 表中的字段将不会放入包中。
不过,如果客户端的 TclientDataSet 控件的 FetchOnDemand 属性为 True;那么客户端
还是能自动的请求这些数据;否则,要显式调用 FetchDetails 方法。
3poIncFieldProps : 若 包 含 此 项 , 则 表 示 数 据 包 中 将 包 含 下 列 字 段 属 性 :
Alignment、MinValue、DisplayLabel、DisplayWidth、Visible、DidplayFormat、
MaxValue、EditFormat、Currency、EditMask、DisplayValues 等。
4poCascadeDeletes : 当 用 嵌 套 表 的 方 式 处 理 Master/Detail 关 系 时 , 这 里 的
Provider 表示主/明细表中的主表。若包含此项,则当主表中的记录被删除时,明细表中
相应的记录将自动地被删除。
注意,要使用这个选项,数据库服务器需要建立参照完整性:也就是,在数据库中对主细
表建立主外键关系,并在“关系”页选中“级联更新相关字段”、“级联删除相关记录”。
5poCascadeUpdates : 当 用 嵌 套 表 的 方 式 处 理 Master/Detail 关 系 时 , 这 里 的
Provider 表示主/明细表中的主表。若包含此项,则当主表中主键字段的值改变时,明细
表中相应的记录将自动地被更新。
注意:要使用这个选项,数据库服务器需要建立参照完整性。参照 4。
6poReadOnly:若包含此项,则表示不允许客户端数据集向 Provider 申请更新数据。
7.poAllowMultiRecordUpdates:表示一个单一的更新将同时更新关联的许多表的记录,
这有可能是通过触发、参照完整性或自定义的 SQL 语句来实现的。
8.poDisableEdits:若包含此项,则表示不允许客户端更新已经存在的数据值,否则,将
触发异常。
9.poDisableInserts:若包含此项,则表示不允许客户端插入一个新的记录,否则,将触
发异常。
10poNoReset:若包含此项,则表示在提供数据前,不允许客户端将光标指定在第一条
记录。
11poAutoRefresh:若包含此项,则表示 Provider 将用当前的记录刷新客户端的数据集,
而不管它是否已经申请更新。(这个功能好像并没有实现)
12poPropogateChanges:若包含此项,则表示服务器对记录的更新将返回给客户端并
反映到客户端数据集中。
13poAllowCommandText:若包含此项,则表示客户端可以重载相关数据集的 SQL 语
句、表的名字或存储过程。
用法
第十一章
与 、 一样, 也是从 继承下来的,它通常用于多
层体系结构的客户端。 最大的特点是它不依赖于
,但它需要一个动态链接库的支持,这个动态链接库叫 。在客户端,
也不需要用 构件,因为客户端并不直接连接数据库。
由于 是从 继承下来的,所以,它支持诸如编辑、搜索、浏览、
纠错、过滤等功能。由于 在内存中建立了数据的本地副本,上述操作的执
行速度很快。也正是由于 并不直接连接数据库,因此,客户程序必须提供
获取数据的机制。在 中, 有三种途径获取数据:
从文件中存取数据。
从本地的另一个数据集中获取数据。
通过 ! 接口从远程数据库服务器获取数据。
在一个客户程序中,可以同时运用上述三种机制获取数据。
"""浏览和编辑数据
和其他数据集构件一样,可以用标准的数据控件显示由 引入的数据集,
当然,这需要借助于 # 构件。
由于 是从 继承下来的,所以,凡是其他数据集构件支持的功
能, 构件也大致具备。不同的是, 能够在内存中建立数据的
副本,因此, 比其他数据集构件增加了一些特殊的功能。
""""浏览数据
可以用标准的数据控件显示由 引入的数据集。在运行期,可以调用诸
如 $、%&、、' 和 等函数来浏览数据。
也支持书签功能,可以用书签来标记某条记录,以后就可以方便地找到
这条记录。
对于 、 等数据集构件来说,只能读 (# 属性来判断当前记录的序号。
对于 构件来说,还可以写 (# 属性,使某一序号的记录成为当前记录。
""")*+ 属性
的 *+ 属性用于判断数据集中的数据是否可以修改。*+ 属性
本身是只读的,也就是说,数据是否能够修改不取决于应用程序。
不过, 构件有其特殊性,因为 已经把数据在内存中建立
了副本,因此,应用程序可以决定是否允许修改数据。如果不允许用户修改数据,只要把
(, 属性设为 ,此时,*+ 属性肯定返回 $。
与其他数据集构件不同,修改 构件的 (, 属性时,不需要事先把
-#! 属性设为 。
""".取消修改
传输数据的基本单位称为数据包,当前的数据包可以由 属性来访
问。不过,用户对数据的修改并不直接反映到 属性中,而是临时写到一个日志即
属性中,这样做的好处是以后随时可以取消修改。
不过,这里要说明一点,尽管用户的修改并没有反映到 ,当用户在数据控件中看
到的却是最新修改的数据。如果一条记录被反复修改了多次,用户看到的只是最新的数据
但日志中却记载了多次。
要取消上一次的修改,调用 / 函数。/ 需要传递一个布
尔类型的参数叫 $0,如果 $0 参数设为 ,光标就移到被恢复的记
录上,如果 $0 参数设为 $,光标仍然在当前记录上。
属性返回日志中记载的修改次数。如果一条记录被反复修改了多次,每
调用一次 / 能够逐级取消上一次的修改。
/ 只能取消上一次的修改,如果想一下子取消所有的修改,首先要选择
一个记录,然后调用 (!(#。(!(# 将从日志中取消所有对当前记录的修改。
还有一个 ! 属性,它能把当前的编辑状态保存起来,以后随时
可以返回当时的状态。例如,可以这样保存当前的状态:
+12"! 3
以后,可以这样来恢复当时的状态:
"! 12+3
应用程序可以保存多处状态,可以恢复其中一个状态,不过,一旦某个状态被恢复,
在其之后的状态就无效。
如 果 要 一 下 子 取 消 日 志 中 记 载 的 所 有 修 改 , 可 以 调 用 #/ 函 数 。
#/ 将把日志清空,取消所有的修改。
如果 属性设为 $,用户对数据的修改就会直接反映到 属性中。
"""合并修改
要把日志中记载的修改合并到 属性中,有两种方式,具体使用哪一种方式,取决
于应用程序获取数据的机制。不过,不管是哪种机制,合并后,日志自动被清空。
对于一个从文件中获取数据的程序来说,只要调用 * 函数,就把日志
中记载的修改合并到 属性中。不用担心其他用户同时修改了数据。
对于一个从应用服务器获取数据的程序来说,就不能调用 * 来合并数
据,而要调用 -/ 函数,-/ 会把日志中记载的修改传递给应用服务器,
待应用服务器成功地把数据更新了数据库服务器后,才会合并到 属性中。
"""4纠错
支持纠错功能。一般情况下,需要自己建立纠错规则,以便对用户输入
的数据进行纠错。
此外,如果获得了 ! 接口的话,还可以从远程服务器引入纠错规则。
有时候,客户端可能需要暂时禁止纠错,因为客户端从应用服务器检索数据是分阶段
进行的,在所有的数据检索完毕之前,有些纠错规则很可能会报错。
要 暂 时 禁 止 纠 错 , 可 以 调 用 , 要 重 新 允 许 纠 错 , 可 以 调 用
函数。 和 实际上都是作用于一个内部
的计数。
"")索引
使用索引有这么几个好处:
在数据集中定位记录比较快。
能够在两个数据集之间建立 5 或 *6 关系。
可以对记录排序。
在多层体系结构中,当客户程序从应用服务器检索数据时,它同时获得了默认的索引
默认的索引叫 $-/7,((,可以使用这个索引排序,但不能修改或删除这个索引。
除了默认的索引外, 还对日志中记载的记录自动建立了一个副索引叫
8-%9。与 $-/7,(( 一样,不能修改或删除这个副索引。
另外,还可以使用数据集中已建立的其他索引,或者自己建立索引。
"")"创建一个新的索引
要创建一个新的索引,可以调用 -'。-' 需要传递若干个参数:
一是 : 参数,用于指定索引名。在运行期切换索引时需要用到索引的名称。
二是 $ 参数,它是一个字符串,用于指定索引中的字段名,彼此之间用分号隔开。
三是 , 参数,用于设置索引的选项,包含 '# 元素表示按降序排列,包
含 '! 元素表示大小写不敏感。
四是 #$ 参数,它也是一个字符串,用于指定若干个字段名,这些字段将按照
降序排列。
五是 $ 参数,它的作用与 #$ 参数类似,包含在 $ 参数
中的字段将对大小写不敏感。
六是 %! 参数,用于指定分组级别,其值不能超过索引中的字段数。
下面的代码创建了一个索引:
+"';<=>=>"$$$"'
"-'"'?=>'=>@"'@
A'!B@=>=>@=>=>@C3
"':12"'?=>'=>3
3
为了避免创建一个索引,可以临时用 '$: 属性来指定若干个字段,让数据集按
这些字段排序。
""))删除和切换索引
要删除一个先前创建的索引,可以调用 ' 并指定要删除的索引名称。注意:
$-/7,(( 和 8-%9 不能删除。
如果建立了多个索引,可以任意选择其中的一个索引,这就要用到 ': 属性。
"").用索引把数据分组
选择了一个索引后,数据集将自动按其中的字段进行排序。这样,临近的记录往往在
关键字段上含有相同的值。例如,假设有一个表是这样的:
( : , -:
" " 4 "CC
" " ) 4C
" ) . )CC
" ) D E4
) " " "C
) . )CC
可 以 看 出 , ( 字 段 的 值 有 重 复 的 。 对 于 ( 字 段 的 值 为 " 的 来 说 ,
: 字段的值也有重复的。这就是说,可以按 ( 字段分组,进而再按 :
字段分组。显然,这里的分组级别是不同的,按 ( 字段建立的分组属于第一级,按
: 字段建立的分组属于第二级。实际上,分组级别取决于字段在索引中的顺序。
可以决定是否按照分组级别来显示记录的值。例如,也许想以下面这种
形式显示数据:
( : , -:
" " 4 "CC
) 4C
) . )CC
D E4
) " " "C
) . )CC
要判断当前记录某一级的什么位置,可以调用 %% 函数。%% 函
数需要传递一个参数,用于指定分组级别。
"".计算字段
与其他数据集一样,也可以在 建立的数据集中增加计算字段。计算字
段的值是基于同一个记录中的其他字段计算出来的。
在其他数据集中,只要用户修改了数据或当前记录发生改变,就会触发 ,#$
事件,换句话说,计算字段的值就被计算一次。
引入了“内部计算字段”的概念。与一般的计算字段不同的是,内部计算
字 段 的 值 将 随 其 他 字 段 的 值 一 起 存 取 , 这 样 , 只 有 当 用 户 修 改 了 数 据 才 会 触 发
,#$ 事件,如果仅仅改变了当前记录,不会触发 ,#$ 事件。也就是说,
内部计算字段的值需要重新计算的机会大大减少。
在处理 ,#$ 事件的句柄中,首先要判断 属性。如果 属性返回
#,此时需要计算内部计算字段的值。如果 属性返回 #$,此时
需要计算一般的计算字段的值。
""统计值
增加了统计的功能,它可以基于分组自动计算总和、平均、计数、最大 、
最小值。当用户编辑数据时,这些统计值会自动跟着变化。
"""指定统计方式
要指定怎样进行统计,就要用到 - 属性。这个属性是一个 - 对象,
它用于管理一组 - 对象。
在设计期,可以单击 - 属性边上的省略号按钮打开如图 """ 所示
的编辑器。
图 """管理一组 - 对象
单击按钮可以增加一个 - 对象,单击按钮可以删减一个 - 对象,单
击按钮可以把 - 对象前移,单击按钮可以把 - 对象后移。
可以用字段编辑器专门创建一个用于表达统计值的字段,该字段的类型必须是
“-F。 会自动创建一个 - 对象,并加到 - 属性中。选择
一个 - 对象,,G## 将显示该对象的属性。
其中,' 属性用于指定统计表达式,例如:
:$"
也可以是比较复杂的表达式:
:H #I:-:
在表达式中,可以使用下列统计运算符:
: 计算一组数据的总和。
-! 计算一组数据的平均值。
计算一组数据中的非空值的个数。
* 计算一组数据的最小值。
*' 计算一组数据的最大值。
除了上述几个统计运算符外,还可以使用过滤条件中所能使用的运算符,但不能嵌套
在一个表达式中,可以混合出现几个统计值或常量,但不能混合出现统计值和字段。
:H #J合法K
*'$"I*'$)J合法K
剩余35页未读,继续阅读
bhg12018
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0