Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.27;
Скачать: CL | DM;

Вниз

ID вставленной записи   Найти похожие ветки 

 
Vladimir   (2003-02-04 09:33) [0]

Добавляю новую запись через IBQuery insert into ... (например новый договор)
и теперь хочу в таблицу detail к вставленной записи добавить детализирующие записи (например план оплаты по договору)
так же используя IBQuery.
Вопрос: как корректно узнать ID вставленной только что записи в таблицу Master?


 
Delirium^.Tremens ©   (2003-02-04 09:45) [1]

Генерить ID в ХП, вызывать ее из приложения и вставлять руками в один и другой INSERT. В триггере на INSERT для таблицы проверять IF (NEW.ID IS NULL) получать его таким же образом и присваивать NEW.ID


 
Vladimir   (2003-02-04 11:04) [2]

спасибо


 
DarkGreen ©   (2003-02-04 11:32) [3]

select gen_id(Generator_Name, 1) from rdb$database
В принципе, для IBX есть прилада (компонент) которая самостоятельно получает значение генератора


 
LordGray   (2003-02-04 16:38) [4]

Лучше это было делать через IBDataSet. ID вставляемой записи должно генериться не триггером, а с помощью свойства GeneratorField. Значения полей будут выглядеть примерно так:

GeneratorField->Generator : Dogovor_ID //сам генератор
Field : ID //поле
Increment by: 1 //прирост генератора
Apply Event : On New Record //когда генерить
SelectSQL ->SELECT * FROM Dogovors ORDER BY 1
RefreshSQL ->SELECT * FROM Dogovors WHERE ID=:ID
InsertSQL ->INSERT INTO Dogovors(ID,Date1,...)
VALUES(:ID,:Date1,...)

При таком подходе Вы получаете:
1)ID сразу при вставке записи, даже если эта запись еще не
сохранялась. Учтите, если построена ссылочная целостность
по полям связи, то пока транзакция, в которой master запись
вставлялась, не будет подтвежена, Вы детальные записи не
вставите.
2)Отпадает надобность в триггере,а значит легче менять структуру
таблицы.
У меня уже полгода работает несколько клиентов по такой схеме, и
проблем еще не возникало.


 
Vladimir   (2003-02-08 14:15) [5]

Вариант, предложенный, Delirium^.Tremens (на мой взгляд) универсальный, так как у меня ID состоит не только из значения генератора. Так же к нему прикрепляется номер филиала, дата и время создания записи.

Если переложить генерацию ID"а на компоненты, то в последствии могут возникнуть проблемы с целостностью данных.


 
DarkGreen ©   (2003-02-09 13:05) [6]

Это какие еще проблемы могут возникнуть???



Страницы: 1 вся ветка

Текущий архив: 2003.02.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-87454
jiura
2003-02-18 20:25
2003.02.27
MDI.


14-87618
Val
2003-02-07 19:09
2003.02.27
Передача графики на мобильник via e-mail


1-87534
Calm
2003-02-15 16:41
2003.02.27
Не получается самому рисовать TTreeView :(


14-87670
Дмитрий К.К.
2003-02-11 06:15
2003.02.27
Именинники 11 февраля


14-87694
{{{KOTOS}}}
2003-02-11 12:00
2003.02.27
Как мне Rect Превести в чиловой параметр