DW Update Properties 的两个问题 。

rongrong 2002-03-20 03:08:44

问题一:
Where Clause for Update/Delete

Key Columns
Key and Update Columns
Key and Modified Columns

这三种选项分别是什么意思 ?(麻烦详细点)

问题二:
Key Modification

Use Delete then Insert
Use Update

该题 Sybase 为什么要给出两种选项 ,一般我们都是用缺省值第一种 ,那是不是有某种特别的情况下
选用第二种方法会比第一种好呀 ?
...全文
259 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanwei 2002-03-20
  • 打赏
  • 举报
回复
收了!
nasy 2002-03-20
  • 打赏
  • 举报
回复
不需要在解释了,呵呵。。。。。
pbsql 2002-03-20
  • 打赏
  • 举报
回复
干脆来个比较全的解释:

数据窗口的并发性控制可以用"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语句中。
pbsql 2002-03-20
  • 打赏
  • 举报
回复
同意gungod2000(打你屁屁^_^)

怎么你也用这个帐号?
gungod2000 2002-03-20
  • 打赏
  • 举报
回复
根据你的选择产生的where条件字句不同:
1.产生的条件语句只比较原始缓冲区的当前数据库中key这个字段的值,如果这两个相同,就可以修改成功。
2。它产生的条件语句要比较所有可以修改的字段,如果符合条件,才能修改成功。
3。会比较key字段和要修改的字段的值
比较而言,第二中产生的where语句最严密。
51dream 2002-03-20
  • 打赏
  • 举报
回复
这是PB自带的帮助,仔细看看吧
Where Clause for Update/Delete
Specify which columns are included in the WHERE clause.

Caution:
Select Key Columns only with a single-user database or if you are using database locking.

Key Modification
Specify which SQL statements are generated when a column specified in the Unique Key Column(s) box is changed.

Use DELETE then INSERT if your DBMS does not allow users to modify two keys and set a value in one row to the original value of the other row, or if your DBMS has an Insert trigger.

Use UPDATE if only one row can be modified before the database is updated.
njscorpio 2002-03-20
  • 打赏
  • 举报
回复
呵呵,关注中!!!!!
帮你up一下

1,078

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧