Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Добавление в базу через Ttable


Автор: DYUMON 31.5.2012, 09:57
Доброго всем времени суток.
Такой вопрос.
Делаю базу данных  на PostgreSql. Необходимо добавлять данные в связные таблицы в первую таблицу  описание документа
во вторую данные документа . соотсветственно связка идет по id документа. 
Но не получается получить id от добавленной в первую таблицу строки.  
делаю так .
Код

ttable1.starttransaction;
ttable1.append;
ttable1.edit;
.....
//добавление данных
.....
ttable1.post;
 .......
ttable2.starttransaction;
//а вот тут по идее  надо делать добавление записей во вторую таблицу
//но  ttable1.lastinsertid возвращает 0
// я так понимаю пока транзакция не закроется id не будет возвращен?
........ 
ttable1.transactioncommit;
ttable2.transactioncommit;

подскажите как правильнее сделать?

Автор: drkot 1.6.2012, 15:10
Цитата

подскажите как правильнее сделать?


есть несколько путей:
1) SQL процедура (имхо самый нормальный)
2) ручное управление автоинкрементом (как в Oracle например). 
3) закрывать транзакцию по первой таблице до записи во вторую

2 и 3 нужно предусмотреть потоко-безопасный подход.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)