Сохранение данных в представления
Чтобы сохранить изменения данных в представлении, укажите его в качестве объекта для операций INSERT, UPDATE и DELETE.
Ниже приведен пример настройки в таблице xls.objects:
ID | TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE | TABLE_CODE | INSERT_OBJECT | UPDATE_OBJECT | DELETE_OBJECT |
---|---|---|---|---|---|---|---|
s02 | view_cashbook | VIEW | s02.view_cashbook | s02.view_cashbook | s02.view_cashbook | ||
s02 | usp_cashbook | PROCEDURE | s02.view_cashbook | s02.view_cashbook | s02.view_cashbook | ||
s02 | code_cashbook | CODE | <SQL> | s02.view_cashbook | s02.view_cashbook | s02.view_cashbook |
Вот пример настройки для представления списка запросов:
ID | TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE | TABLE_CODE | INSERT_PROCEDURE | UPDATE_PROCEDURE | DELETE_PROCEDURE | PROCEDURE_TYPE |
---|---|---|---|---|---|---|---|---|
s02 | view_cashbook | VIEW | s02.view_cashbook | s02.view_cashbook | s02.view_cashbook | |||
s02 | usp_cashbook | PROCEDURE | s02.view_cashbook | s02.view_cashbook | s02.view_cashbook | |||
s02 | code_cashbook | CODE | <SQL> | s02.view_cashbook | s02.view_cashbook | s02.view_cashbook |
Инструменты SaveToDB 8+, DBEdit, DBGate и ODataDB автоматически создают такие настройки, если целевое представление можно определить.
Например, если у пользователя есть разрешение VIEW DEFINITION, и представление или хранимая процедура содержит код типа SELECT * FROM s02.view_cashbook
.
Целевое представление должно иметь поля первичного ключа или поле IDENTITY.
Детали реализации
SaveToDB и DBEdit генерируют и выполняют команды INSERT, UPDATE и DELETE самостоятельно.
DBGate выполняет команды INSERT, UPDATE и DELETE на стороне сервера, преобразуя команды POST, PUT и DELETE.
ODataDB создает объекты EntitySet для представлений и FunctionImport, возвращающие EntitySet для хранимых процедур и объектов на основе SQL-запросов.