`
zjut_xiongfeng
  • 浏览: 272040 次
  • 性别: 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并发控制与Row changed between retrieve and update详解

    描述PB的并发控制机制,详细解释Row changed between retrieve and update错误出现的原因,以及处理方法。对学习PB有一定的帮助。

    Go+Redis实现的计数器限流和滑动窗口限流,支持并发安全.zip

    TCP中采用滑动窗口来进行传输控制,滑动窗口的大小意味着接收方还有多大的缓冲区可以用于接收数据。发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据。当滑动窗口为0时,发送方一般不能再发送数据包,但有...

    大学 数据库 实验 报告 数据库原理实验

    2)分别使用SQL Server服务管理器和控制面板启动MS SQL Server服务。 开始→程序→SQL Server2000→企业管理器 3)练习企业管理器使用。 创建数据库:在处单击右键,选中“新建数据库” 删除数据库:在...

    校招应用软件开发工程师(Java)

    D、同一进程中的多个线程不能并发执行; 11、关于数据库中的锁的说法,错误的是() A、乐观锁常用于读取多于更新的场景 B、一个事务对数据加了共享锁后,其他事务可以继续对该数据添加共享锁 C、更新数据时,先获取...

    数据库管理系统的设计与实----现.pdf

    包括多 用户环境下的并发控制、安全性检查和存取权限控制、完整性检查和执 行、数据加密、运行日志的组织管理、事务的管理和自动恢复(保证事 务的正确性),这些功能保证了数据库系统的正常运行。 (4)数据组织、...

    pb技术精髓,不用不要后悔

    <br> * 第一讲: 数据库的事务管理 * 第二讲: 调用Windows的动态链接库 * 第三讲: PowerBuilder面向对象的程序设计 * 第四讲: 并发控制 * 第五讲: DataWindow的打印输出 * 第六讲: ...

    自考数据库系统原理简答题总结.docx

    DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担着创建、监控和维护数据库结构的责任。 22.DBA职责功能? 1)定义模式;2)定义内模式;3)定义安全性规则,对访问数据库用户授权;4)定义完整性...

    基于Java的初期视频会议的实现

    用户界面设计: 实现用户友好的界面设计,包括视频窗口、语音输入输出控制等。 并发处理: 使用多线程实现并发处理,支持同时处理多用户音视频传输和消息交流。 应用场景: 远程办公: 适用于远程团队协作,实现...

    VHDL设计基础程序百例源码(100例).zip

    第93例 实现窗口搜索算法的并行系统(4)——顶层控制器 第94例 MB86901流水线行为描述组成框架 第95例 MB86901寄存器文件管理的描述 第96例 MB86901内ALU的行为描述 第97例 移位指令的行为描述 第98例 单周期指令的...

    VHDL语言100例

    第93例 实现窗口搜索算法的并行系统(4)——顶层控制器 第94例 MB86901流水线行为描述组成框架 第95例 MB86901寄存器文件管理的描述 第96例 MB86901内ALU的行为描述 第97例 移位指令的行为描述 第98例 单周期指令的...

    vhdl语言设计100例

    第93例 实现窗口搜索算法的并行系统(4)——顶层控制器 第94例 MB86901流水线行为描述组成框架 第95例 MB86901寄存器文件管理的描述 第96例 MB86901内ALU的行为描述 第97例 移位指令的行为描述 第98例 单周期指令的...

    VHDL example

    第93例 实现窗口搜索算法的并行系统(4)——顶层控制器 第94例 MB86901流水线行为描述组成框架 第95例 MB86901寄存器文件管理的描述 第96例 MB86901内ALU的行为描述 第97例 移位指令的行为描述 第98例 单周期指令的...

    VHDL 源程序集详细讲解 100例

    第93例 实现窗口搜索算法的并行系统(4)——顶层控制器 第94例 MB86901流水线行为描述组成框架 第95例 MB86901寄存器文件管理的描述 第96例 MB86901内ALU的行为描述 第97例 移位指令的行为描述 第98例 单周期指令的...

    CMT-QA:异构无线网络中质量感知的自适应并行多路径数据传输

    本文提出了一种新颖的质量感知自适应并发多路径传输解决方案(CMT-QA),该解决方案利用SCTP在无线异构网络中进行类似FTP的数据传输和实时视频传递。 CMT-QA定期监视和分析每条路径的数据处理能力,并做出数据传递...

    VHDL语言100 例

    第93例 实现窗口搜索算法的并行系统(4)——顶层控制器 第94例 MB86901流水线行为描述组成框架 第95例 MB86901寄存器文件管理的描述 第96例 MB86901内ALU的行为描述 第97例 移位指令的行为描述 第98例 单周期指令的...

    VHDL语言100例源码 VHDL学习资料VHDL 编程要点VHDL编程心得体会.zip

    第93例 实现窗口搜索算法的并行系统(4)——顶层控制器 第94例 MB86901流水线行为描述组成框架 第95例 MB86901寄存器文件管理的描述 第96例 MB86901内ALU的行为描述 第97例 移位指令的行为描述 第98例 单周期指令的...

    21天学会SQL

    5.4 并发控制 100 5.4.1 并发访问的问题 100 5.4.2 SQL Server中的锁 101 5.4.3 查看活跃事务 102 5.4.4 事务隔离级别 104 5.4.5 事务隔离级别的设置 104 5.5 事务的阻塞 105 5.6 死锁 107 5.6.1 死锁的产生 107 ...

    个人收藏分享-超过200个VHDL代码例程并且附有参考资料(绝对值得分享给大家)

    第93例 实现窗口搜索算法的并行系统(4)——顶层控制器 第94例 MB86901流水线行为描述组成框架 第95例 MB86901寄存器文件管理的描述 第96例 MB86901内ALU的行为描述 第97例 移位指令的行为描述 第98例 单周期指令的...

Global site tag (gtag.js) - Google Analytics