1 (edited by agatlogic101 2019-11-08 13:47:49)

Topic: Запретить удалять при условии связи

Если удалять без скрипта а напрямую программой, при условии что, что-то ссылается на эту таблицу, то при удалении возникает ошибка. Что есть хорошо...
Но когда я удаляю что то скриптом через запрос к примеру
SQLExecute('DELETE FROM revenue WHERE id='+ мероприятие.TableGrid1.sqlValue );
То данные удаляются в любом случае. Вопрос: как сделать так, что бы при удалении через "SQLExecute('DELETE FROM revenue", проверялись связи на таблицу, и если какая то, или определённая таблица ссылается на revenue, то запретить удаление?

Re: Запретить удалять при условии связи

При удалении SQL запросом также должна возникнуть ошибка, если речь идет по поддержку целостности.

Dmitry.

3 (edited by agatlogic101 2019-11-08 14:22:01)

Re: Запретить удалять при условии связи

Да, я оказывается реализовал не удаление а скрытие строки через фильтр... но в моей логике программы это всё равно что удалить данные, так как они переходят в другой статус. Есть возможность допустим проверить как то кодом, есть ли работающие связи на данную таблицу из вне? Допустим таблицы "event" к таблицу "rev". И если есть, то запретить использования скрытия (в моём случае команду "UPDATE"

Re: Запретить удалять при условии связи

Можно

if SQLExecute('SELECT COUNT(id) FROM rev WHERE id_event='+мероприятие.TableGrid1.sqlValue) > 0 then запрещаем удаление
Dmitry.