Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Возвратить 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]

Там же все есть в самой библиотеке.
ТОлько прочитать доку


Наверх

Титульная страница Поиск, карта сайта Написать письмо