给棒子补课-基础概念-数据窗口对象的修改属性

原创 2012年03月27日 19:17:28
      近日见了一高丽棒子写的系统,PB写就,已运行了最少五六年,令人惊异的是,里边几乎没有应用数据窗口的update功能,充满了大段大段的sql语句,看了以后让人头昏脑胀,不明所以,如坠五里雾中。带着满腹疑惑询问一棒子,为什么舍易取难,舍简就烦,答案居然是 '直接用数据窗口更新时 有可能会造成数据丢失或错误,为了严谨,所以要直接写SQL......' 这个时候我已经快崩溃了,等我再问下去,才明白,原来这位老兄干了五六年,居然连数据窗口对象的修改属性都没有完全搞清楚,仅仅因为曾经由于在Key Modification  使用  Use Delete  then  Insert  造成级联的数据被删除,留下了不可磨灭的阴影,所以才形成了自己独特的“风格”(这是我推理出来转告他的),悲哀啊,PB赖以生存的,数据处理的神器,DATAWINDOW,被这样子使用。现在把数据窗口对象的修改属性转贴在下边,如果有不甚了了的同志,多看下,免得浪费了自己的时间,浪费了DATAWINDOW这个好东西。

数据窗口对象的修改属性
Rows->Update Properties
如果数据窗口对应的数据表中定义了主键或者唯一性索引,则数据窗口创建时默认的就是允许修改,并且正确设置了所有的修改属性。否则就需要手工进行设置。当增加、删除、或者重新选择了字段时,PB将数据窗口的的修改属性为不允许,这时也应该进行手工设置。
Allow Updates:允许更新。
Table to Update:指定要被更新的表。
Where Clause for Update/Delete:配置如何在UpdateDelete 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 = '陈' and address = '杭州' and telephone = '1395813'
3、Key and Modified Columns 该方法是上面两种方法的折中,当不同的用户并发修改同一行数据的不同字段时,都能成功修改,所以它的并发性有了一定的**,数据的完整性比第一种修改方式有所提高。这种修改方式使用主键和数据发生了变化的列来产生where子句。保存数据时产生如下的SQL语句:update add_book set name = '万' where id = '001' and name = '陈'
Key Modification:该组框用来指定当用户修改了主键时,数据窗口如何来更新数据表中的主键字段。有两种选择Use Delete thenInsert和UseUpdate。第一个选项是先删除原有的主键值,然后再使用新的主键值插入一个完整的行。使用这种更新主键的方式可以减少组织数据的工作量,但在数据库中各个数据表之间存在父子制约关系,并且依赖该主键的外部键被指定为级联删除时,操作就不会成功的。因为级联删除方式要求当依赖主键的外部键有数据时就不能删除主键。当DBMS允许更新主键列时,可以使用第二个选项,该选项直接修改主键值,所以防止了级联删除带来的操作不成功的问题。
Updateable Columns:指定被更新的字段。当数据窗口中的字段来自不止一个数据表时,这时一定要选择同一个表中的字段,因为一个数据窗口一次只能更新一个数据表,当数据窗口中增添了字段时,新增添的字段往往是不允许修改的,一定要在该列表框中选择该字段。
Unique Key Column:选择唯一标识一行的列。如果在定义数据表时定义了主键,单击右面的“Primary Key”按钮可以在该列表框中选中主键。
Identity Column:该下拉列表框用于为下拉列表框中所指定的列(通常是主键列)生成序号,当且仅当DBMS支持序号生成时该作用才有效

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

数据窗口只能修改一个数据表。当数据窗口的数据来源于不止一个数据表时,可以用脚本控制数据窗口的修改属性来对数据表逐个进行修改。 当数据窗口是用来接受用户的手工录入数据时,应该设置两方面的属性才能确保数据...

修改窗口对象属性

  • 2012年10月12日 09:31
  • 8KB
  • 下载

PB9.0提供了28个属性、35个默认事件、162个函数。注意与数据窗口对象的区分

本的执行效率 *尽量不要在RetrieveRow事件下编写脚本(包括注释)。 *如果数据窗口的DoubleClicked事件中编写了脚本,那么在数据窗口的C1icked事件中的脚本应该尽量短,否则...

PB9.0提供了28个属性、35个默认事件、162个函数。注意与数据窗口对象的区分。

本的执行效率 *尽量不要在RetrieveRow事件下编写脚本(包括注释)。 *如果数据窗口的DoubleClicked事件中编写了脚本,那么在数据窗口的C1icked事件中的脚本...
  • bjash
  • bjash
  • 2015年01月21日 16:51
  • 2902

php面向对象基础概念(属性重载的魔术方法)__get(),__set(),__isset(),__unset()

--在给不可访问属性赋值时,__set()会被调用。 __get()方法:这个方法用来获取私有成员属性值的,有一个参数, 参数传入你要获取的成员属性的名称,返回获取的属性值, 这个方法不用我们手工的去...

javascript基础:window对象的screen属性、移动窗口、缩放窗口

window对象的screen属性,也是一个对象,包含了关于屏幕的分辨率,以及可视的长宽。 通过window对象的moveTo,resizeTo 函数,可以指定浏览器程序在屏幕上显示的x、y坐标,以...
  • yupeigu
  • yupeigu
  • 2017年02月04日 11:31
  • 313

PB数据窗口对象之字段属性和计算域属性

〓字段和计算域的属性-更多见帮助(DataWindow objectproperties) *获取字段的类型(Coltype属性) 字段的ColType属性是一个非常有用的属性,使用该属性可以...

维度模型数据仓库基础对象概念一览

一、度量、指标、指标器 度量和维度构成OLAP的主要概念,对于在事实表或者一个多维立方体里面存放的数值型的、连续的字段,就是度量。这符合上面的意思,有标准,一个度量字段肯定是统一单位,例如元、户数。...

iPhone开发基础教程笔记(十一)--第十一章 基本数据持久性(属性列表、归档对象、SQLite3)

第十一章 基本数据持久性 本章将介绍将数据持久存储到iPhone的文件系统的三种不同的机制。并介绍如何使用属性列表、对象归档以及iPhone的嵌入式关系 数据库(称为SQLite3)。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:给棒子补课-基础概念-数据窗口对象的修改属性
举报原因:
原因补充:

(最多只允许输入30个字)