数据窗口只能修改一个数据表。当数据窗口的数据来源于不止一个数据表时,可以用脚本控制数据窗口的修改属性来对数据表逐个进行修改。

当数据窗口是用来接受用户的手工录入数据时,应该设置两方面的属性才能确保数据窗口能够用来修改数据表。一个是修改数据窗口的修改属性,另一个是用户可以修改的字段的相关属性值

----------

数据窗口对象的修改属性

Rows->Update Properties

如果数据窗口对应的数据表中定义了主键或者唯一性索引,则数据窗口创建时默认的就是允许修改,并且正确设置了所有的修改属性。否则就需要手工进行设置。当增加、删除、或者重新选择了字段时,PB将数据窗口的的修改属性为不允许,这时也应该进行手工设置。

Allow Updates:允许更新。

Table to Update:指定要被更新的表。

Where Clause for Update/Delete:配置如何在Update和Delete SQL语句中构造where子句

1、Key Columns 当开发单用户应用程序或者用户都以加锁方式访问数据库时可以选中该选项。该选项表示数据窗口只使用在“Unique Key Column”列表框中指定的唯一列进行数据更新。使用这种方式来修改数据库,并发性很高,不同的用户都可以并发地访问数据库,但是数据的完整性却非常差。因此要保护数据完整性,只有在单用户程序或者加锁访问方式下才使用这种修改方式。如:在add_book(通讯录)数据表中定义了4个字段,id为主键,name,address,telephone三个字段为可修改字段,有如下一条数据(001,陈,杭州,1395813)。若想把name改为“万”,数据窗口产生如下的update语句:update add_book set name = '万' where id = '001'

2、Key and Updateable Columns 这种修改方式是默认的修改方式,它用主键列和可以修改的列来创建where子句,具有很高的数据完整性,但是并发性不是太好。推荐使用这种修改方式。保存数据时将产生如下的SQL语句:update add_book set name = '万' where id = '001' and name = '陈' andaddress = '杭州' and telephone = '1395813'

3、Key and Modified Columns 该方法是上面两种方法的折中,当不同的用户并发修改同一行数据的不同字段时,都能成功修改,所以它的并发性有了一定的限制,数据的完整性比第一种修改方式有所提高。这种修改方式使用主键和数据发生了变化的列来产生where子句。保存数据时产生如下的SQL语句:update add_book set name = '万' where id ='001' and name = '陈'

Key Modification:该组框用来指定当用户修改了主键时,数据窗口如何来更新数据表中的主键字段。有两种选择Use Delete then Insert和Use Update。第一个选项是先删除原有的主键值,然后再使用新的主键值插入一个完整的行。使用这种更新主键的方式可以减少组织数据的工作量,但在数据库中各个数据表之间存在父子制约关系,并且依赖该主键的外部键被指定为级联删除时,操作就不会成功的。因为级联删除方式要求当依赖主键的外部键有数据时就不能删除主键。当DBMS允许更新主键列时,可以使用第二个选项,该选项直接修改主键值,所以防止了级联删除带来的操作不成功的问题。

Updateable Columns:指定被更新的字段。当数据窗口中的字段来自不止一个数据表时,这时一定要选择同一个表中的字段,因为一个数据窗口一次只能更新一个数据表,当数据窗口中增添了字段时,新增添的字段往往是不允许修改的,一定要在该列表框中选择该字段。

Unique Key Column:选择唯一标识一行的列。如果在定义数据表时定义了主键,单击右面的“PrimaryKey”按钮可以在该列表框中选中主键。

Identity Column:该下拉列表框用于为下拉列表框中所指定的列(通常是主键列)生成序号,当且仅当DBMS支持序号生成时该作用才有效

----------

数据窗口对象字段的修改属性

**相关属性

数据窗口中字段的相关属性:

1、字段的Tab Order值

2、字段的Protect属性

3、字段的DisplayOnly属性

4、字段的Visible属性

上述属性前3个中任意一个都可以让用户无法修改字段中的数据:最后一个属性决定字段是否可见,不可见的字段不管其他属性如何设置.用户都无法修改字段中的数据。

当字段的Tab Order值为0时,肯定不能获得焦点,但是非0时也不一定能获得焦点,还得看字段的Protect属性是否设置为1;当字段的Tab Order值不为0,Protect属性不为1并且字段的Visible属性为True时,肯定可以获得焦点。DisplayOnly属性和焦点是否能够获得无关(即选中Displayonly时可以选中字段,可以复制,但不能更新)。

**数据保护 可以用以下三种方法将字段设置为用户不可修改的字段: (1)在数据窗口设计时将这些字段的TabOrder值置为0,以使该字段不能获得焦点,用户无法选中和编辑该字段。 (2)将字段的DisplayOnly属性设置为True。该字段可以获得焦点,可以选中该字段,还可以拷贝复制该字段的内容,但不能编辑该字段中的内容。 (3)设置字段的Protect属性。字段的Protect属性如果设置为“1”,则该字段的TabOrder值即使不是0也不会得到焦点。使用该属性可以保护一些重要的数据。

pb 修改数据窗口种指定字段位置_PB数据窗口对象之字段的修改属性相关推荐

  1. pb 修改数据窗口种指定字段位置_PB笔记之数据窗口可编辑的条件

    1.列的tab order为0,列不能获得焦点 2.dw_control.object.datawindow.readonly="yes" 3.DW.Object..Protect ...

  2. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据---设置数据窗口的更新属性...

    如何在 PB 数据窗口中修改数据 --- 设置数据窗口的更新属性 数据窗口对象非常强大的原因之一就是能够很容易地修改数据库.当用户修 改了数据窗口中的数据,插入了新的数据行或者删除了数据行以后,只要调 ...

  3. pb 修改数据窗口种指定字段位置_在PB中控制 数据窗口 列修改属性.doc

    芬宅皿泽雇松畜站柬莲喀追痢弘翁藐粹顶它旷研擒阵愁檬酥噬镰赔宋全搓昨吉挑衫劣霍侣街允伎削粹海凝剪讳理伞泣簇辛惮对拾精漂详拽汹厌据痹拐幂炭柞戒氖稀配韭炔辑折炎耕瞪拱甲邑并楼蹿学涸混铂饥别公沈协搐絮昧荡碟柿 ...

  4. pb 修改数据窗口种指定字段位置_第三章 Python数据类型 容器

    数据类型 容器 Python中的数据包括元素和容器两大类: 元素: 1.数字 包括整数.浮点数. 1.1整数 1.2浮点数 2.布尔类型 3.删除数字对象引用,例如: 4.数字类型转换 5.数学函数 ...

  5. matlab中如何读取TXT数据文件中指定行的数据

    面这个函数是取filein中的第line行写入fileout中的程序,如果想实现取特定几行,只要稍微修改一下就可以. function dataout=dataread(filein,fileout, ...

  6. logstash向elasticsearch写入数据,如何指定多个数据template

    之前在配置从logstash写数据到elasticsearch时,指定单个数据模板没有问题,但是在配置多个数据模板时候,总是不成功,后来找了很多资料,终于找到解决办法,就是要多加一个配置项: temp ...

  7. 爬取网页后的抓取数据_3种抓取网页数据方法

    1. 正则表达式 (1) re.findall('<tr id="places_area__row">.*?<td\s*class=["\']w2p_f ...

  8. 气象数据处理时保留指定时间的数据——MATLAB程序

    目的:处理长时间序列的气象数据时,只保留指定时间的数据 %处理气温数据,,删除指定时间的数据 clear all A=importdata('E:\weatherdata\TEM\58020.txt' ...

  9. 数据科学与python语言——Matplotlib数据可视化基础

    Matplotlib数据可视化基础 一.读取数据与数据处理阶段 1.提取指定行中的数据 2.得到>指定数值的数据 3.得到=指定值得数据 4.整体的数据处理: 二.画图函数 1.plt.subp ...

最新文章

  1. sql server 数据库备份方案
  2. 一个好的设计应当具备哪些要素
  3. qtdesigner设计表格_实例9 利用Qt Designer设计一个对话框
  4. php psl标准,psl是什么单位
  5. python三维数组表示方法_Python操作多维数组和矩阵
  6. 西安计算机二级12月,2017年12月计算机二级MS Office习题答案(一)
  7. pycharm的编码问题
  8. 普林斯顿微积分读本:第 3 章 极限导论
  9. 房屋租赁管理系统 基于SSM框架 带视频讲解 有文档
  10. 【博主推荐】HTML5响应式手机WEB(附源码)
  11. c++重复代码检查工具
  12. kvm几种快照的创建与删除
  13. 跨平台的会员通 打通品牌任督二脉
  14. 【ZYNQ】从入门到秃头10 DDS增强版实验ADDA测试(基于ALINX 7020 AN108)
  15. nodejs怎么看安装成功_教你怎么用XBOX ONE安装KODI看4K蓝光电影,并实现PC局域网共享...
  16. After Effects Guru: Plugins You Should Know After Effects 大师教程之你必须了解的插件 Lynda课程中文字幕
  17. Java的GUI编程---贪吃蛇游戏实现
  18. 16种凶猛的猫科动物渲染
  19. 写博客的主要动力来源
  20. JDK、JRE和JAR

热门文章

  1. 漏洞深度分析|CVE-2022-1471 SnakeYaml 命令执行漏洞
  2. 【区块链技术工坊30期实录】黄佳磊:公链如何做到TPS过万?
  3. 赠书五本《数据分析咖哥十话》
  4. 解决finalshell无法连接,一直提示登陆密码
  5. TP-LINK路由器自动拨号上网和无线上网设置
  6. 【zabbix】自定义监控、邮件报警、企业微信报警、钉钉报警(详细)
  7. 综合性实验五、有限状态机的硬件描述语言设计方法
  8. Java中,通过synchronizedXxx()将线程不安全的集合转换成线程安全的集合
  9. 固态硬盘开卡软件_【移动的家】惠普P500 移动硬盘上手体验
  10. u盘安装浪潮服务器_浪潮NF5280M5服务器安装windows2008R2