powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / получить id созданной записи
9 сообщений из 9, страница 1 из 1
получить id созданной записи
    #38667817
чучундра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!

Интересует такой вопрос:
- Forms 10
- блок на основе таблицы (с полями id, name , к примеру)
- на канве поле name и кнопка Сохранить
- в базе, на таблице висит триггер, Before Insert/Update, где поле id автоматом заполняется из сиквенса.

Вопрос. Как, при нажатии кнопки Сохранить, или где в триггере на форме, например on-commit,
проверить и выдать сообщение, что мол, сохранение прошло успешно, и самое главное, id,
создавшейся записи узнать/получить?

Спасибо.
...
Рейтинг: 0 / 0
получить id созданной записи
    #38669977
OldBoyOdeSu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чучундра,

проверить и выдать сообщение, что мол, сохранение прошло успешно - в триггере POST-DATABASE-COMMIT, выдавай сообщение;

как вариант: если есть возможность то подправить триггер, чтоб если id is null тогда он присваивал значение, иначе оставлял то, которое пришло из формосв, в формсах в триггере PRE-INSERT присвоить новое значение из той же секвенции id := seq.nextval
т.о. ты будешь знать id до вставки.
...
Рейтинг: 0 / 0
получить id созданной записи
    #38670072
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чучундра,

Смотри свойство блока "DML Returning Value" со значением "Yes"
...
Рейтинг: 0 / 0
получить id созданной записи
    #38670237
чучундра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OldBoyOdeSuпроверить и выдать сообщение, что мол, сохранение прошло успешно - в триггере POST-DATABASE-COMMIT, выдавай сообщение;
как вариант: если есть возможность то подправить триггер, чтоб если id is null тогда он присваивал значение, иначе оставлял то, которое пришло из формосв, в формсах в триггере PRE-INSERT присвоить новое значение из той же секвенции id := seq.nextval
т.о. ты будешь знать id до вставки.

с этим всё ясно, интересует вариант без вставки id в формах..

OldBoyOdeSuСмотри свойство блока "DML Returning Value" со значением "Yes"

ок, поставил Yes, откуда/где брать возвращаемые значения?
...
Рейтинг: 0 / 0
получить id созданной записи
    #38670254
чучундра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.. ещё в справке по "DML Returning .." сказано: "Forms uses the DML Returning clause only with an Oracle8 database server. This property is ignored when using a non-Oracle8 server."
Как быть с базой 11 версии?
...
Рейтинг: 0 / 0
получить id созданной записи
    #38670355
OldBoyOdeSu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чучундра,

DML Returning clause only with an Oracle8 or later database

У нас все блоки на процедурах, но предположу, что прям в id поле и возвратится
Then this property is set to Yes, Forms will automatically update the client-side version of the data , and the user will not need to re-query the database to obtain the changed values.
...
Рейтинг: 0 / 0
получить id созданной записи
    #38670971
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чучундраок, поставил Yes, откуда/где брать возвращаемые значения?
Ну так в поле id и бери.

Установка этого свойства заставляет Формс генерировать следующую команду INSERT (если нет триггера ON-INSERT):
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
INSERT INTO tab 
   (id, name) 
VALUES 
   (:BLOCK.id, :BLOCK.name)
RETURNING 
   id, name 
INTO 
   :BLOCK.id, :BLOCK.name;



Фраза RETURNING появилась в СУБД Oracle в 8-й версии. Отсюда и ограничение.
...
Рейтинг: 0 / 0
получить id созданной записи
    #38671251
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ЛузановФраза RETURNING появилась в СУБД Oracle в 8-й версии. Отсюда и ограничение.
Точнее, в 8i (8.1). В 8.0 еще не было
...
Рейтинг: 0 / 0
получить id созданной записи
    #38671316
чучундра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за участие.
Оставил вариант как было (id присваевается в формах)..
А вот по поводу проверки на "успешное сохранение", тут как я понял несколько решений, какие Вы используете, - я сделал на триггере формы ON-MESSAGE, если MESSAGE_CODE=40400, то сообщение об "успехе". Есть смотрю Form_Success, но это как я понял проверка на заполнение данных форм?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / получить id созданной записи
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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