在Delphi想使用三层架构或者使用TClientDataSet控件,一般都需要引用TDataSetProvider控件,现对TDataSetProvider控件的Options属性值做一个简单的分析。

1. poFetchBlobsOnDemand:

若包含此项,则表示数据包中不包括BLOB字段。不过,如果客户端的TClientDataSet控件的FetchOnDemand属性设为True,那么客户端还是能自动地请求这些数据值;否则,客户端应用程序必须使用客户数据集的FetchBlobs方法来检索BOLB数据。

2. poFetchDetailsOnDemand:

当用嵌套表的方式处理Master/Detail关系时,这里的Provider表示主 /明细表中的主表。若包含此项,则Detail表中的字段将不会放入包中。不过,如果客户端的TclientDataSet控件的FetchOnDemand属性为True;那么客户端还是能自动的请求这些数据;否则,要显式调用FetchDetails方法。

3. poIncFieldProps:

若包含此项,则表示数据包中将包含下列字段属性:Alignment、MinValue、DisplayLabel、DisplayWidth、Visible、DidplayFormat、MaxValue、EditFormat、Currency、EditMask、DisplayValues等。

4. poCascadeDeletes:

当用嵌套表的方式处理Master/Detail关系时,这里的Provider表示主/明细表中的主表。若包含此项,则当主表中的记录被删除时,明细表中相应的记录将自动地被删除。

注意:要使用这个选项,数据库服务器需要建立参照完整性:也就是,在数据库中对主细表建立主外键关系,并在 “关系”页选中“级联更新相关字段”、“级联删除相关记录”。

5. poCascadeUpdates:

当用嵌套表的方式处理Master/Detail关系时,这里的Provider表示主/明细表中的主表。若包含此项,则当主表中主键字段的值改变时,明细表中相应的记录将自动地被更新。

注意:要使用这个选项,数据库服务器需要建立参照完整性。参照4。

6. poReadOnly:

若包含此项,则表示不允许客户端数据集向Provider申请更新数据。

7. poAllowMultiRecordUpdates:

表示一个单一的更新将同时更新关联的许多表的记录,这有可能是通过触发、参照完整性或自定义的SQL语句来实现的。

8. poDisableEdits:

若包含此项,则表示不允许客户端更新已经存在的数据值,否则,将触发异常。

9. poDisableInserts:

若包含此项,则表示不允许客户端插入一个新的记录,否则,将触发异常。

10. poNoReset:

若包含此项,则表示在提供数据前,不允许客户端将光标指定在第一条记录。

11. poAutoRefresh:

若包含此项,则表示Provider将用当前的记录刷新客户端的数据集,而不管它是否已经申请更新。(这个功能好像并没有实现)

12. poPropogateChanges:

若包含此项,则表示服务器对记录的更新将返回给客户端并反映到客户端数据集中。

13. poAllowCommandText:

若包含此项,则表示客户端可以重载相关数据集的SQL语句、表的名字或存储过程。

Delphi 三层TDataSetProvider的更多相关文章

  1. Delphi三层开发小技巧:TClientDataSet的Delta妙用

    Delphi三层开发小技巧:TClientDataSet的Delta妙用 转载 2014年10月13日 09:41:14 标签: 三层 / ClientDataSet 318 from :http:/ ...

  2. Delphi三层网络架构代码实现

    Delphi三层网络架构代码实现 1 .三层网络的概念 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为: 表现层(UI).业务逻辑层(BLL).数据访 ...

  3. 论DELPHI三层的数据序列格式的变化

    论DELPHI三层的数据序列格式的变化 要窥三层的数据序列格式,我们可以通过观察DELPHI官方的客户端内存表. 早先流行的是TClientDataSet,它的Data和Delta属性的数据类型都是: ...

  4. delphi 三层架构简单例子(经测试成功)

    delphi 三层架构简单例子(经测试成功) 转载 2013年12月19日 09:48:57 1100 所谓三层: (1) 客户端 (2) 服务器端 (3) 数据库 在数据访问时,使得客户端必须通过服 ...

  5. Delphi 三层框架 DataSnap 的服务器端设置

    elphi 三层框架 DataSnap 的服务器端设置: DataSnap 框架有三个模块:DataSnap Server,Server Module,DataSnap Client Module. ...

  6. delphi三层架构

    我们的delphi程序很多是以前开发的,采用典型的CS架构,由程序直接连接数据库.现在需要改成在外网可以直接操作软件.先把数据库搬到了阿里云上,测试发现直接连数据库和VPN连接测试速度很慢,直连还容易 ...

  7. delphi三层架构(使用SATRDA改造,客户端代码不变)

    我们的delphi程序很多是以前开发的,采用典型的CS架构,由程序直接连接数据库.现在需要改成在外网可以直接操作软件.先把数据库搬到了阿里云上,测试发现直接连数据库和VPN连接测试速度很慢,直连还容易 ...

  8. delphi三层结构常出现的问题和解决方案

    以下问题出现原因有可能多个,暂时将我遇见的记录下来,以后有新的在陆续更新上去,有网友愿意的话也可以共同测试一下. 一,无法更新定位行.一些值可能已在最后一次读取已更改. 错误出现前提: 1, 录数据时 ...

  9. Delphi 三层框架开发 服务端开发

    采用Delphi7+SQL2008 一.创建数据库和表 CREATE TABLE [dbo].[tb_Department]( [FKey] [uniqueidentifier] NOT NULL, ...

随机推荐

  1. [转]SQL数据库查询到的汉字字段是乱码

    使用英文版SQL数据库查询到的汉字字段是乱码的解决方案 2007-12-04 14:55:45 标签:函数 SQL 数据库 乱码 排序规则 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出 ...

  2. es中的一些知识点记录

    1. forcemerge接口 强制段合并,设置为1时,是期望最终只有1个索引段.但实际情况是,合并的结果是段的总数会减少,但仍大于1,可以多次执行强制合并的命令. 设置的的目标值越小.合并消耗的时间 ...

  3. HTTP 2.0 原理详细分析

    HTTP 2.0是在SPDY(An experimental protocol for a faster web, The Chromium Projects)基础上形成的下一代互联网通信协议.HTT ...

  4. VI使用手册(常见命令)

    VI使用手册 模式切换 i键开始进入编辑模式,Esc进入一般模式,保存退出:wq,不保存退出q,强制退出q! 如何定位到行文档首位,行首位? gg或者1G命令将光标移动到文档开头G命令将光标移动到文档 ...

  5. 第8章 传输层(1)_TCP/UDP协议的应用场景

    1. 传输层的两个协议 1.1 TCP和UDP协议的应用场景 (1)TCP协议:如果要传输的内容比较多,需要将发送的内容分成多个数据包发送.这就要求在传输层用TCP协议,在发送方和接收方建立连接,实现 ...

  6. Android之socket多线程

    一.添加权限 <uses-permission android:name="android.permission.INTERNET" /> 二.输入输出流 客户端和服务 ...

  7. 模拟select控件,css模拟下拉

    <!DOCTYPE html > <head>     <meta http-equiv="Content-Type" content="t ...

  8. python学习之----遍历单个域名和随机数

    实现“维基百科六度分隔理论”的查找方法.也就是说,我们要实现从埃里克 · 艾德尔的词条页面(https://en.wikipedia.org/wiki/Eric_Idle)开始,经过最少的链接点击次数 ...

  9. c# 测试运行时间毫秒级

    , , , , , , )).Ticks) / ; /*代码*/ , , , , , , )).Ticks) / ; MessageBox.Show((currentMillis1 - current ...

  10. hwclock

    查看.设定硬件时钟.该时钟由主机板的晶振及相关电路提供,需要主机板氧化银电池提供动力. 通过命令 hwclock 访问硬件时钟获取时间信息.该命令可以显示当前时间.重新设置时间.读取系统时间.设定系统 ...