powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / IG на основе сложного запроса
10 сообщений из 10, страница 1 из 1
IG на основе сложного запроса
    #39439705
Начинаю разбираться с IG

Сделал Interactive Grid на основании запроса (упрощенно):

select id,dat, u.name , m.name model_name, t.name type_name
from u, model m, typ t
where u.model_id = m.model_id and u.typ_id = u.typ_id


Включил редактирование, меняю некоторые названия, нажимаю Save
Естественно не дает
Ajax call returned server error ORA-20987: APEX - ORA-01776: нельзя изменить более одной таблицы посредством связанного представления

Каким кодом можно подменить стандартное сохранение данных грида?
...
Рейтинг: 0 / 0
IG на основе сложного запроса
    #39439730
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поставь в свойствах полей query only
...
Рейтинг: 0 / 0
IG на основе сложного запроса
    #39439751
"query only" так я ведь и сохранять в базу хочу(

Еще, через какой код принудительно задать вид грида как "Single Row"
...
Рейтинг: 0 / 0
IG на основе сложного запроса
    #39439827
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Attributes > Edit > Enabled = Yes

Settings for your Save Interactive Grid Data process:

Settings > Set Target Type = PL/SQL Code
Settings > PL/SQL Code to Insert/Update/Delete =
begin
case :APEX$ROW_STATUS
when 'I' then -- Note: In EA2 this has been changed from I to C for consistency with Tabular Forms
insert into emp ( empno, ename, deptno )
values ( :EMPNO, :ENAME, :DEPTNO )
returning rowid into :ROWID;
when 'U' then
update emp
set ename = :ENAME,
deptno = :DEPTNO
where rowid = :ROWID;
when 'D' then
delete emp
where rowid = :ROWID;
end case;
end;

https://community.oracle.com/thread/3937159
тогда так
...
Рейтинг: 0 / 0
IG на основе сложного запроса
    #39463792
делаю как в представленном коде

коде
begin
case :APEX$ROW_STATUS
when 'U' then
update conf
set proc_value = :PROC_NUM
where conf_id = :CONF_ID;

изменяю поле :PROC_NUM в интерфейсе пишет "Changed saved"
В базе не сохраняется. Записываю ниже в коде значение поля :PROC_NUM в отдельную таблицу. Сохраняет старое значение поля, до изменения(
Как явно указать, что мне нужно измененное значение? Часть какой plsql записи являются все поля грида?
...
Рейтинг: 0 / 0
IG на основе сложного запроса
    #39463847
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки Младшийselect id,dat, u.name , m.name model_name, t.name type_name
from u, model m, typ t
where u.model_id = m.model_id and u.typ_id = u.typ_id
попробуйте JOIN
Это более правильный синтаксис, чем мешанина таблиц через запятую во from
...
Рейтинг: 0 / 0
IG на основе сложного запроса
    #39463884
Petro123,
сейчас это просто вьюха. join должен заставить меняться полю на новое?
...
Рейтинг: 0 / 0
IG на основе сложного запроса
    #39463942
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки МладшийPetro123,
сейчас это просто вьюха. join должен заставить меняться полю на новое?
вы пробуйте и потом тут расскажете.
Я знаю что текст запроса влияет на автоматический механизм апдейта таблиц.
При JOIN, ещё в 4-ке апекса в табуляр таблицах получалось редактировать.
И если хотите автомат, то вьюшку убрать на саму таблу.
Если руками писать UpdateSQL, то пофиг вообще текст запроса. Будет выполняться ваш текст при Update.
...
Рейтинг: 0 / 0
IG на основе сложного запроса
    #39463947
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки Младшийjoin должен заставить
JOIN вместо вашего - это просто хороший стиль и практика
...
Рейтинг: 0 / 0
IG на основе сложного запроса
    #39464801
Migelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никки МладшийВ базе не сохраняется. Записываю ниже в коде значение поля :PROC_NUM в отдельную таблицу. Сохраняет старое значение поля, до изменения(
Как явно указать, что мне нужно измененное значение? Часть какой plsql записи являются все поля грида?
Как-то странно. Написал уже несколько гридов, обновляющихся таким методом, работают как часы. Всегда передается измененное поле. Я бы для начала попробовал пересоздать окно с гридом с нуля. Может там в процессе экспериментов что-то порушилось.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / IG на основе сложного запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]