PB中用DataWindow.Update更新数据。

powerbuilder9.0之datawindowupdate(我的PB学习第二十天) hehe 近两三天来,都苦闷于datawindowupdate数据库未果,求助数人,大家给的也只是一些有可能的tip.最多的是修改update属性,偶也试了,describe(columnname.update)都已经等于yes了,还是提示说没有update ability.群里有人提示key也要是yes,俺也就去modify(key =yes)结果还是不可以.接近放弃了.想了想,还是看看表结果 阅读详情

       大多数情况下,您的应用程序将在网络环境下运行。有可能会有多个人同时使用一个程序。在这种情况下使用数据窗口应注意并发控制问题。 
数据窗口的并发性控制可以用"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语句中。 

如何在PB数据窗口中设置数据窗口的更新属性 数据窗口对象非常强大的原因之一就是能够很容易地修改数据库。当用户修改了数据窗口中的数据,插入了新的数据行或者删除了数据行以后,只要调用 update()函数就可以将修改了的数据保存到数据库中。但是,这需要一个前提,就是必须设置数据窗口的修改属性。         数据窗口要修改数据表,首先清楚数据窗口只能修改一个数据表。当数据窗口的数据来源于不止一个数据表时,可以用脚本控制数据窗口的 阅读详情

相关推荐

PB 你需要知道的东西

PB 你需要知道的东西 1、什么叫继承?PB的非可视对象能否实现继承? · 继承就是面向对象中类与类的之间的一种关系,继承的类成为子类,派生类,二被继承的类成为父类、基类或超类。通过继承,使子类具有与父类相同功能的方法和属性,同时子类也可以加入新的属性和方法或者修改父类的属性和方法简历建立新的类层次。 PB非可视对象能够实现继承,也能能够实现相应代码的重用。 2、PB自定义对象...

qq_36357154的博客 1230

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

利用pb数据窗口更新多个数据库中的表。

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

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

PB中常用函数Update的详细用法

函数语法:dwcontrol.Update ( { accept {, resetflag } } )  accept:   为True,表示在提交数据之前自动执行AccpetText函数,否则不执行该函数,该参数缺省为True。为False,表示在提交数据之前不自动执行AccpetText函数。 resetflag:为True,表示数据提交后自动清除修改标识,该参数缺省为Tr

jose_mourinho的专栏 7989

PB数据窗口“Update Properties”的设置

Row changed between retrieve and update. No changes made to database. DELETE FROM "zbfxb" WHERE "qj" = ? AND "zbzl_bm" = ? AND "zblb_code" = ? AND "zb_bm" = ? AND "zbxz_code" = ? AND "jsff" = ?

tlammon的专栏 7242

为什么我的datawindow不能update?

 1 楼wind1825(听海的歌)回复于 2001-04-28 10:46:00 得分 0 进入数据窗口画板中的菜单Rows/Update   Propertires...,     在其中的Updateable   Columns中将要更新的字段选上就可以啦Top2 楼vetica(丢了)回复于 2001-04-28 10:57:00 得分 0 数据窗口update属性里的prim

盐碘 2073

datawindowupdate过程中显示进度与中断

     最近csdn上频频出现类似中断commit的问题:http://topic.csdn.net/u/20090805/10/c9270a8b-2ac1-4beb-b59a-7d89dc6c4e07.html?58492http://topic.csdn.net/u/20090806/03/5227d73b-4300-4c20-b353-5bbba45a50a6.html?8869 

永生天地 3535

PBdatawindow更新屬性 如何控制數據庫並發

 一、引言对于Client/Server方式下的编程,不可避免地有并发操作处理的问题。为了说明问题,举一个不够恰当的例子:如果有两个用户A和B都试图访问同一员工记录并同时要求修改该员工工资时,会有什么情况发生呢?假设该员工的工资为1000元,两台机器修改记录之前读出用户工资均正确。A用户为此员工加本月奖金200元,查询到原来薪水为1000,加上200后变为1200,而此时B

builderwfy的专栏 2600

PB更新由多个表生成的数据窗口

基于PowerBuilder 环境, 详细介绍了在数据窗口中多表同步更新操作的实现, 解决了在应用程序开发过程中默认的一个数据窗口对象只能更新一个表的问题。

PowerBuilder/PB常用备忘

记录PB相关的知识点和备忘,以备不时之需,同时也可共Pber们参考使用

Zhaof_Notes 2690

pb-datawindow function

pb数据窗口函数小结 一、连接数据库 连接数据库也就是指定事务对象。PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。 语法格式: dw_control.SetTrans(TransactionObject) dw_control.SetTransObject(TransactionObject) 其中,dw_control是所使用的...

241

Datawindow does not have the UPDATE capability

错误原因: 因为要更新datawindow数据窗口对象(datachild)的列没有更新能力 解决办法是: 打开datawindow数据窗口对象(datachild),选择菜单rows\\update properties...在弹出的窗口中勾上allow updates, 在table to update 中选择要update的表, 在where clause for update/...

ClearLoveQ的博客 5000

DataDindow does not have UPDATE capability

Problem: 使用DataWindow.update()来更新数据的时候报错"DataDindow does not have UPDATE capability"Reason:DataWindowupdate属性丢失了Solution:打开DataWindow->在画板的菜单栏上选择"Rows"->"Update Properties"->勾选"Allow Updates" 

ljc007的专栏 2246

pb中setsqlselect和DataWindow.Table.SELECT 的区别

getsqlselect,DataWindow.Table.SELECT,setsqlselect

tianshilong的博客 547

pb 数据窗口更新mysql_PB-数据窗口缓冲区与数据修改状态

1--缓冲区的介绍在应用程序运行时,用户对数据窗口进行的操作情况是很复杂的,删除、插入、修改等操作有可能都会发生。记录哪些数据修改过、哪些数据需要删除、哪些数据是新增加的等等,都是很重要的工作,以便数据保存时能够正确修改数据库。这些工作都是由数据窗口缓冲区来完成的。数据窗口在运行时要创建四个缓冲区,分别是主缓冲区、删除缓冲区、过滤缓冲区和原始缓冲区,这四个缓冲区各司其职、共同配合,来保证数据窗口对...

weixin_39695701的博客 476

pb 修改数据窗口种指定字段位置_PB数据窗口缓冲区与数据修改状态

初始状态指定状态New!NewModified!DataModified!NotModified!New!——YesYesNoNewModified!No——YesNew!DataModified!NewModified!Yes——YesNotModified!YesYesYes——通过观察表1,我们可以发现这样一种情况:假设某个记录的状态为New!,那么不能直接改为NotModified!但可先...

weixin_39624816的博客 533

datawindow stored procedure update 的使用介绍

This document explains how to implement the new feature of the DataWindow which uses stored procedures to insert, update, and delete data from a database OverviewIn previous versions of PowerBuilder...

jackxiong 523
上一篇: 用VB将数据导入Excel文件中
wanglex
博客等级 码龄23年 0粉丝 4原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值