`
zjut_xiongfeng
  • 浏览: 280221 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

并发控制(数据窗口)

阅读更多

Update属性详解: 

大多数情况下,您的应用程序将在网络环境下运行。有可能会有多个人同时使用一个程序。在这种情况下使用数据窗口应注意并发控制问题。     
数据窗口的并发性控制可以用"rows"菜单的"Update    Properties"项进行设定。     
1.    Allow    Updates:如果选中,则整个数据窗口允许修改,否则不允许;     
2.    Table    to    Update:在多表查询时,用该项选择要设置的表名;     
3.    Where    Clause    for    Update/Delete:这项设置是对数据库并发控制最重要的一项,要仔细设置。     
当调用数据窗口的Update方法时,数据窗口使用SQL语句将数据结果传递到数据库系统,这项设置决定在SQL语句的where子句中使用哪些列作为整条记录的标志。     
(a)Key    Columns:仅仅使用关键字作为整条记录的标志。在网络环境下不推荐使用此选项。如果两个用户同时修改了同一条记录,后进行保存操作的人会把先保存的人所做的修改"抹掉"而毫无察觉。如果选择Key    Columns,那么Update对应的SQL语句是:     
Update    A.xh,    A.xm,    A.csrq,    A.py     
Set    ...    //用户修改后的新值     
Where    A.xh    =    ...    //用户修改前的旧值     
如果被修改的不是xh列,那么后一个用户将察觉不到前一个用户所做的修改。     
(b)Key    and    Updatable    Columns:使用关键字和所有可更新列作为记录的标志。     
采用(a)中的例子,Update对应的SQL语句将是:     
Update    A.xh,    A.xm,    A.csrq,    A.py     
Set    ...    //用户修改后的新值     
Where    A.xh    =    ...     
And    A.xm    =    ...     
And    A.csrq    ...     
And    A.py    =    ...    //用户修改前的旧值     
在这种情况下,后一个用户的Update将不能成功执行。     
(c)Key    and    Modified    Columns:使用关键字和所有已更新列作为记录的标志。     
功能和(b)很相似,不同点在于(b)的前端执行速度快,数据库端慢;而(c)则刚好相反。     
4.    Key    Modification:该项设置决定了更新数据库的方法。     
(a)Use    Delete    then    Insert:先删除,再插入。     
(b)Use    Update:直接修改。     
建议使用(b)选项。     
5.    Updatable    Columns:用来选择"可更新列",这里所做的选择与3.(b)对应,没有选中的列将不会出现在Update语句中。     
6.    Unique    Key    Columns:用来选择关键字,这里所做的选择与3.(a)对应,没有选中的列将不会出现在Update语句中。 
--------------------------------------------------------------- 
原因:执行dw_1.update()之前,表中的数据被其它人修改过的话就可能会出现这种情况 

什么情况下发生这种错误是由dw的update  properties  的设置决定的, 
关键因素就在这里 

表1:  a,b,c,d  列(在updatable  columns中选中全部列) 
a为key列(在unigue  key  columns  中设置) 

关键是where  clause  ...中的设置 
(a)Key    Columns:仅仅使用关键字作为整条记录的标志。  当选择这种方式时,只有a字段的值在你update()之前发生改变,才会引起这个错误 

b)Key    and    Updatable    Columns:使用关键字和所有可更新列作为记录的标志。  使用这种方式更新,最容易引起这种错误,因为只要a,b,c,d任何一个可更新的列由其它人改变了,就会引起错误. 

c)Key    and    Modified    Columns:使用关键字和所有已更新列作为记录的标志。假如:  你修改了b列,那么,在你执行update()之前,如果a,b中任何一个列由其它人改变了,就会引起这个错误.  这种情况下,如果a,b列没被其它人修改,而c,d列被修改了,则不会引起错误. 

===========================

Identity   Column(序号列):在dw中新插入一行并提交后,pb会自动把你所选中的列的值带回并显示出来,否则需要重新检索才能看到。

分享到:
评论

相关推荐

    pb并发控制.doc、pb并发控制

    在 PowerBuilder 中,数据窗口(DataWindow)是用于与数据库交互的重要组件,它支持多种数据库操作,包括并发控制。并发控制是确保多用户在同时访问相同数据时,不会导致数据不一致性的关键机制。关系型数据库系统...

    pb数据窗口更新多个数据库表

    - 对于复杂的业务场景,可能还需要考虑到并发控制、数据验证等方面的问题。 - 如果需要频繁地进行多表更新操作,可以考虑封装成函数或过程,提高代码的复用性和维护性。 通过以上步骤,可以有效地实现PB数据窗口中...

    PB并发控制与Row changed between retrieve and update详解

    PB并发控制与Row changed between retrieve and update详解 PB并发控制机制是指在多用户同时...PB 的并发控制机制可以通过数据窗口的更新属性(Update Properties)来实现,通过选择不同的策略来保证数据的完整性。

    powerbuilder 并发控制 实例分析

    综上所述,PowerBuilder中的并发控制涉及到数据窗口的更新属性设置,包括允许更新、选择更新的表、定义唯一键、处理主键更新方式以及确定更新和删除语句的条件。这些设置直接影响到多用户环境下数据的一致性和应用...

    PowerBuilder_SQL Server结构下的并发控制.pdf

    在PowerBuilder中,实现并发控制的一个关键点是通过数据窗口的更新属性来控制。这里涉及到几个关键的概念和参数设置,其中包括KeyColumns、KeyandUpdateableColumns以及KeyandModifedColumns。KeyColumns参数是通过...

    PB Datawindow数据窗口编程指南WDL

    PB Datawindow数据窗口是PowerBuilder(PB)中的核心组件,它是构建数据库应用程序的重要工具。本指南专注于Datawindow的编程技术,旨在帮助开发者充分利用其功能,提高开发效率。WDL(Windows Datawindow Language...

    行业分类-设备装置-一种适用于实时数据库的安全并发控制方法.zip

    并发控制的目标是在不影响数据完整性的情况下,最大化系统的并行性。这通常涉及到事务处理,其中每个事务都是一组数据库操作,必须按照特定的隔离级别执行,如读未提交(Read Uncommitted)、读已提交(Read ...

    ORACLE EBS 入门与提高 请求组 数据组 自定义并发程序

    ### Oracle EBS 入门与提高 —— 请求组、数据组、自定义并发程序 #### 在请求组中管理程序 **定义一个请求组** 当定义一个请求组时,可以包括以下内容: - 属于一个应用的所有报表和并发程序 - 独立的报表和...

    07-01 三个售票窗口同时出售20张票(并发)

    在IT行业中,并发控制是分布式系统、多线程编程以及数据库管理系统中的核心概念。这个例子“07-01 三个售票窗口同时出售20张票(并发)”旨在探讨如何在多线程环境下实现并发销售,特别是针对售票系统的场景。在这样...

    检测网页并发量

    - 并发控制:使用锁或其他并发控制机制,防止数据竞争和死锁。 - 代码优化:遵循最佳编程实践,减少不必要的计算和内存消耗。 通过上述方法,我们可以有效地检测和管理网页并发量,确保网站在各种情况下的正常...

    实战Java高并发程序设计-试读

    《实战Java高并发程序设计》是一本专注于Java并发编程实践的书籍,试读版提供了前两章的内容,为读者提供了一个初步了解并发编程基础的窗口。在Java领域,并发编程是构建高性能、高效率系统的关键技术,对于软件开发...

    关于处理informix并发问题的几点心得

    这种方式减少了锁定时间,但可能存在数据不一致的风险,因为从获取数据到更新数据之间可能存在短暂的时间窗口。 3. **游标稳定读隔离级别**:这是作者最终选择的方法。在游标稳定读隔离级别下,仅对当前读取的记录...

    hiro并发人数登录控制共4页.pdf.zip

    同样,标签和压缩包子文件的名称“赚钱项目”并没有直接关联到IT技术或者并发控制的具体内容。因此,我无法生成详细的IT知识。 通常,"并发人数登录控制"涉及到的是系统设计和服务器性能优化方面的内容。在Web应用...

    操作系统实验并发进程

    对于描述中提到的"分窗口同时显示",这可能意味着我们需要创建三个独立的窗口,每个窗口对应一个并发进程的输出。每个窗口内部可以实时更新显示进程的执行状态,例如进程ID、CPU使用率、已执行的指令数等。为了实现...

    行业分类-设备装置-用于使用滑动写入窗口机制写入数据的方法和系统.zip

    5. 流控策略:通过窗口机制实现流量控制,防止下游系统因数据过载而崩溃。 6. 错误恢复:如果发生数据丢失或错误,窗口机制可能提供一种方式来重新处理受影响的数据。 在系统部分,文件可能详细介绍了如何将这种...

    操作系统课设 多线程并发执行 C# WPF

    总的来说,这个操作系统课设项目将涉及到多线程编程、并发控制、WPF界面设计以及内存管理模拟等多个重要领域,对于提升学生的理论知识和实践技能具有很高的价值。通过实际操作,学生可以更深入地理解操作系统的内部...

    linux GTK 并发

    总的来说,这个示例程序涵盖了Linux系统编程中的重要概念,如GUI编程、并发控制和进程管理,是学习和理解这些主题的好例子。通过分析和理解这个程序,开发者可以提升在Linux环境下构建复杂应用的能力。

    服务端并发的网络复制命令scp

    3. 流量控制:通过滑动窗口机制避免接收方来不及处理大量数据而造成拥塞。 4. 拥塞控制:当网络出现拥塞时,TCP会减小发送速率,以减轻网络负担。 5. 有序传输:通过序列号确保数据包按照正确的顺序到达。 6. 包丢失...

    Java高并发秒杀API

    在设计这样的系统时,我们需要关注多个关键知识点,包括但不限于数据库操作、并发控制、性能优化以及分布式协调等。 首先,业务分析是整个流程的起点。在秒杀活动中,我们需要确保系统的稳定性和用户体验。这包括了...

Global site tag (gtag.js) - Google Analytics