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

原创 2014年07月04日 11:00:51


数据窗口只能修改一个数据表。当数据窗口的数据来源于不止一个数据表时,可以用脚本控制数据窗口的修改属性来对数据表逐个进行修改。
当数据窗口是用来接受用户的手工录入数据时,应该设置两方面的属性才能确保数据窗口能够用来修改数据表。一个是修改数据窗口的修改属性,另一个是用户可以修改的字段的相关属性值
----------
数据窗口对象的修改属性
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中窗口等对象如何改名各位,不知道你曾经是否为修改窗口等对象的名字烦恼过,这几天学习pb7.0为要改个窗口名费劲心思,鼠标点来点去也没有找到修改的地方,也不知道给位有什么高招。后来还是用学习vc得...
  • dog333
  • dog333
  • 2001年07月06日 16:04
  • 1292

<转>在PB中控制数据窗口列的修改属性

在PB中控制数据窗口列的修改属性 在编制管理信息应用系统中,一般都会遇到一个共同问题,那就是如何根据不同情况去控制表中的数据列,比如对于同一DATAWINDOW不同的用户有不同的操作(如对于数据录入...
  • tlammon
  • tlammon
  • 2016年03月21日 15:41
  • 283

PB数据窗口对象之信息修改

〓修改数据窗口信息 为了在运行时修改数据窗口对象特征,应该使用Modify函数,而不是直接访问语法。该函数的语法如下: dwcontrol.Modify(modstring) 其中,dwcont...
  • u012369435
  • u012369435
  • 2014年07月04日 12:58
  • 1119

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

〓字段和计算域的属性-更多见帮助(DataWindow objectproperties) *获取字段的类型(Coltype属性) 字段的ColType属性是一个非常有用的属性,使用该属性可以...
  • u012369435
  • u012369435
  • 2014年07月04日 13:01
  • 3368

[PB]-数据窗口对象(一)

[PB]-数据窗口对象(一) 数据窗口对象的数据源 ---------- PB提供5种数据源:Quick Select(快速选择类型)、SQL Select(SQL选择类型)、Query(查...
  • tlammon
  • tlammon
  • 2016年05月12日 22:15
  • 2333

PB9核心之——数据窗口对象使用

概要 最近这几天一直在用pb做一个小系统,经过这几天对pb9的使用,发现pb9的核心是数据窗口对象的使用,通过使用数据窗口对象可以将数据库的记录显示到界面上,并且可以直接在前台对数据库的记录进行增删改...
  • zwk626542417
  • zwk626542417
  • 2014年03月06日 16:04
  • 8074

PB判断数据窗口数据是否更改及原始值与当前值

PB判断数据窗口数据是否更改及原始值与当前值    dwcontrol.GetItemStatus ( row, column, Primary! )可以获取该缓冲区内指定单元的状态,当参数colu...
  • nuptsv_ice
  • nuptsv_ice
  • 2014年03月07日 09:19
  • 5967

PB数据窗口控件之属性

【属性】 ▲DataObject 数据源 ▲Title 用来显示在数据窗口的标题条(TitleBar)上的一个字符串。建议该字符串要有一定的含义,能够标明数据窗口的用途或者其中的数据的类别。该...
  • u012369435
  • u012369435
  • 2014年07月10日 11:48
  • 1726

PB 实现dddw联动

最近在自学PB,在网上找了很久,没有找到下拉数据窗口联动的例子,自己花了一下午的时间做了一个小例子,现在写出来给大家参考一下,望高手指点. 一、创建表 //用来存储区域信息 crea...
  • bjash
  • bjash
  • 2015年01月21日 16:45
  • 991

PB数据窗口对象之字段操作

数据窗口对象的字段操作 ---------- 字段的编辑类型 PB提供了六种编辑类型: 1)Edit是字段的缺省编辑类型,可以用于所有类型的字段上。 2)CheckBox编辑类型在这里是一种...
  • u012369435
  • u012369435
  • 2014年07月04日 11:52
  • 1316
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PB数据窗口对象之字段的修改属性
举报原因:
原因补充:

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