【问题标题】:How to delete all detail block when i delete master block oracle forms删除主块oracle表单时如何删除所有细节块
【发布时间】:2020-05-22 21:34:55
【问题描述】:

当我从主块中删除一条记录时,它应该删除块详细信息中的所有记录....但这不会发生在我身上...此消息出现“frm-40510:ORACLE 错误无法删除记录” .

我按了shift + f1出现这条消息:

SQL 语句出错:DELETE FROM tableName WHERE ROWID=:1

错误ORA-02292: integrity constraint (schemaName.C_NO_FK) violated - child record found

这是我的删除按钮代码

DECLARE
   v_id      NUMBER := :CUSTOMERS.C_NO;
   v_alert   NUMBER;
BEGIN
   SET_ITEM_PROPERTY ('CUSTOMERS.C_NO', enabled, property_true);
   SET_ITEM_PROPERTY ('CUSTOMERS.C_NO', update_allowed, property_true);
   SET_ITEM_PROPERTY ('CUSTOMERS.C_NO', navigable, property_true);

   IF v_id IS NOT NULL
   THEN
      v_alert := SHOW_ALERT ('DEL_ALERT');

      IF v_alert = alert_button1
      THEN
         GO_BLOCK ('CUSTOMERS');
         DELETE_RECORD;
         :SYSTEM.message_level := 25;
         COMMIT;
         :SYSTEM.message_level := 0;
         MESSAGE ('deleted');
      END IF;
   ELSE
      MESSAGE ('choose one record to delete it');
      MESSAGE ('choose one record to delete it');
      GO_ITEM ('btnsrch');
   END IF;
   GO_ITEM ('btnsrch');
   SET_ITEM_PROPERTY ('CUSTOMERS.C_NO', enabled, property_false);

   exception when others then
    message(sqlerrm);
END;

我想用delete_record;代替delete语句delete form detailTable where …

然后delete form masterTable where ……. 这工作正常但不是delete_record;

【问题讨论】:

  • 您的代码是正确的,没有任何内容。但是您需要将关系属性删除记录行为更改为级联。就是这样。

标签: oracle plsql foreign-keys master-detail oracleforms


【解决方案1】:

非常简单,只需转到主块中的关系并按 F4 并将“删除记录行为”属性设置为“级联”。

【讨论】:

  • 感谢您的回答。我在哪里可以找到该主块中的关系?
猜你喜欢
  • 1970-01-01
  • 2021-02-04
  • 1970-01-01
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
相关资源
最近更新 更多