Когда я удаляю запись из основного блока, она должна удалить все записи в деталях блока .... но этого не происходит со мной ... Появляется это сообщение «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 form detailTable where …
тогда delete form masterTable where …….
это работает нормально, но не delete_record;