Powerbuilder-DataWindow does not have
UPDATE capability.
解决方法:
打开一数据窗口,从Rows菜单中选择的
"Update
Properties… "系统显示
"Specify
Update
Prorerties "对话框:
http://s16/bmiddle/6e5f74c6tbb7ee5c3050f&690does not have UPDATE capability." />
A、如果不允许数据窗口更新数据库,那么就不要选中复选框
"Allow
Updates ",单击
"OK "按钮关闭对话框。如果要禁止用户修改数据窗口的某列,那么在数据窗口画笔中将此列的TabOrder值设为0。
B、如果允许数据窗口更新数据库,选中复选框
"Allow
Updates "。
C、在
"Table
To
Update "下拉列表框中选择要更新的表
D、在
"Where
Clause
For
Update/Delete "中选则更新方式。
E、在
"Updatesble
Cloumns "通过单击选择可更新的列,被选中的列将加亮显示。
F、选择了要更新的列后,在
"Unique
Key
Column(s) "列表框中定义唯一键,这个唯一键必须能够在表中唯一的标识一条记录。
G、在
"Key
Modification "组框中选择当唯一键列更新时数据行的更新方式。
H、如果当前表中包括了自动增长序号的列(称做标识列,并非所有的数据库都具备此特性),那么在
"Indentity
Column "下拉列表框中指定该列。
I、单击
"OK "关闭对话框。
注意事项:如果在 "Indentity
Column "下拉列表框中指定某列为标识列,那么就不要把该列选择为可更新列。否则,如果把该列选择为可更新列,那么数据窗口产生的任何更新数据库的Update语句都将失败。
关于 "Specify
Update
Prorerties "对话框中的
"Key
Modification "组框的详细意义。
"Key
Modification "组框中两个选项指定当唯一键列被更新时的数据行的更新方式。
A、选中
"Use
Delete
Then
Insert "单选钮,在唯一键列被更新的情况下,PoweBuild将首先删除原来的行,然后使用新的键值插入新行。(这种方法减少了数据库重新组织数据的次数,但也存在一些潜在的问题,当某个表的主键是另一个表的外键并在定义外部键时将删除方式定义同时删除(级联删除)时,应用程序可能并不想使用
"Use
Delete
Then
Insert "选项。)
B、选中
"Use
Update "单选钮,在唯一键列被更新的情况下,PoweBuild修改行的键值(并非所有的数据库都支持主键更新,也就是说,如果您使用的数据库管理系统不支持主键更新,在这里您就不能选择
"Use
Update "选项)。这种方法避免了与外部键相关的级联删除问题。
关于 "Specify
Update
Prorerties "对话框中的
"Where
Clause
For
Update/Delete "的三个选项的具体含义:
A、Key
Columns
当选中 "Key
Columns "单选钮时,数据窗口只使用
"Unique
Key
Columns "列表框中选择主键来构造Where子句,该选项经常在单用户应用程序环境中使用,当PowerBuild生成Update或
Delete语句时,它比较某行键值列的原始值与数据库相应行键值列的值,如果两者相等,则更新操作或删除操作被成功的执行。
B、Key and
Updateable
Columns
当选中 "Key
and
Updateable
Columns "单选钮时,PowerBuild在创建的Update或Delete语句中将键值列的原始值与可更改列的原始值与数据库的相应值进行比较。当这些值相等时,修改或删除相应的行(即Update或Delete语句成功执行)。
C、Key
and
Modified
Columns
当选中 "Key
and
Modified
Columns "单选钮时,PowerBuild在创建的Update或Delete语句中将键值列的原始值和已修改可更改列的原始值与数据库的相应值进行比较。当这些值相等时,修改或删除相应的行,该选项是对数据完整性的保护和操作并发性的折中。
加载中,请稍候......