![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что тут лучше использовать: триггер и ХП [D5, IB6.x]
Виталий Панасенко © (2002-08-12 15:01:00)Имеем две таблицы мастер-детаил:
Мастер: Шапка накладной
Doc_Id Integer *
Owner_Code
Doc_Type
Doc_Date
Client_Code
ну и тд
Детаил: данные об отпускаемом товаре
Doc_Id Integer *
Id Integer *
Produkt_Kolvo
и тд
Doc_Id в Мастер генерирует генератор.
Но для того чтобы их связать я должен знать Doc_Id.
На ум приходит вызвать ХП и получить Doc_ID.
Далее insert into detail ... values(:doc_id etc.)
Но вообще-то как я слышал это можно сделать с помощью триггера.
Но как получить Doc_ID.
Id в детаил тоже генерит генератор, но там вроди понятно - это
для уникальности и мне его знать не обязательно (по Doc_ID я найду все).
Подскажите как можно это сделать, любой вариант.
Johnmen (2002-08-12 16:32:00) [1]>Leran2002 ©
Я не говорил, что плох ! Я сказал, что сутьего та же !
Leran2002 (2002-08-12 16:03:00) [2]
> Johnmen © (12.08.02 15:51)
А чем мой вариан плох??? Заранее спасибо за ответ...
Johnmen (2002-08-12 15:51:00) [3]>Leran2002 © (12.08.02 15:12)
По сути это то же, что и
>На ум приходит вызвать ХП и получить Doc_ID.
>Далее insert into detail ... values(:doc_id etc.)
>Виталий Панасенко
Делай, как сам написал. И это будет правильно.
Leran2002 (2002-08-12 15:12:00) [4]По моему вот самый простой способ:
GenQuery:TIBQuery;
GenQuery.SQL содержит "SELECT GEN_ID(GENNUMRES, 1) FROM RDB$DATABASE"
GENNUMRES – имя вашего генератора
// после добавления записи
procedure TDM.MainTblAfterInsert(DataSet: TDataSet);
begin
GenQuery.Open;
MainTblNUMRES.AsInteger:=GenQuery.Fields[0].AsInteger;
GenQuery.Close;
end;