DateWindow does not have UPDATE capability

引用 DataWindow does not have UPDATE capability是什么原因? - 泪雨直流的日志 - 网易博客

提示框出现:DataWindow   does   not   have   UPDATE   capability.是什么原因?已经连接了到了数据窗口,但一运行UPDATE就弹了如上的对话框.

改变数据窗口更新特性的方法  
  打开一数据窗口,从Rows菜单中选择的"Update   Properties…"系统显示"Specify   Update   Prorerties"对话框:  
  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语句中将键值列的原始值和已修改可更改列的原始值与数据库的相应值进行比较。当这些值相等时,修改或删除相应的行,该选项是对数据完整性的保护和操作并发性的折中。 

无标题

原文地址:https://www.cnblogs.com/flowjacky/p/2838407.html