![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возвратить ID вставленной записи [D7, IB6.x]
worldmen © (2009-04-29 17:29:00)Как узнать ID вставленной записи, чтоб передать его другой форме. Запись вставляю с помощью TpFIBQuery, ID генерится генератором - gen_id(gen_id_tst,1)
Медвежонок Пятачок (2009-05-07 17:19:00) [1]колеса в твоем велосипеде квадратные однако.
SHM (2009-05-07 17:16:00) [2]Всегда работаю с СУБД через самописные промежуточные классы. Не уверен, что сейчас реализую самым оптимальным способом но логика такая:
1. Получив команду на инсерт выполняем резервирование ключа, добавлением пустой записи в базу. Каждая таблица расширена на несколько служебных полей. Одно из таких SESSION_ID используется для различных целей в том числе и резервирования.
2. Сразу после добавления пустой записи, происходит выборка последней записи с текущим SESSION_ID.
3. Получаем локальную запись, инициализированную по правилам настроек таблицы настороне СУБД, в том числе и с заданным ID записи. Остается только задать поля и отправить на UPDATE
Медвежонок Пятачок (2009-04-30 10:43:00) [3]Как узнать ID вставленной записи, чтоб передать его другой форме.
Здесь не про запрос надо спрашивать, а скорее всего править консерваторию.
Подозреваю что речь идет о двух формах. Одна с гридом и кнопками new edit delete, другая для операции едит.
И у автора проблема обработки кнопки new.
То есть он в модуле с гридом делает инсерт, затем хочет окрыть вторую форму.
Инсерт надо делать во втором модуле а передавать туда -1 в качесвте ключа. Если редактируемый датасет окажется пустым, делать аппенд, иначе делать едит (случай редактирования "старой" записи)
Виталий Панасенко (2009-04-30 10:04:00) [4]
> Медвежонок Пятачок © (29.04.09 22:51) [4]
Но нету у FIBQuery...
> worldmen (29.04.09 17:29)
Запрос бы показал
Медвежонок Пятачок (2009-04-29 22:51:00) [5]Можете носом ткнуть - ничего не нашел
Все необходимое есть в паблишед свойствах фибдатасета.
ТД (2009-04-29 19:58:00) [6]
> ID генерится генератором - gen_id(gen_id_tst,1)
где генерится?
уже прочитал наизусть http://www.ibase.ru/devinfo/generator.htm?
worldmen (2009-04-29 19:12:00) [7]Можете носом ткнуть - ничего не нашел
Скачал pdf файл на русском и посмотрел хелп для Д7 на англ.
Медвежонок Пятачок (2009-04-29 17:30:00) [8]Там же все есть в самой библиотеке.
ТОлько прочитать доку