![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мне необходимо получить значение из поля, которое формируется при помощи генератора и триггера [D5, IB6.x, ]
Rex © (2002-01-23 11:12:00)Уважаемые мастера! Мне необходимо получить значение из поля, которое формируется при помощи генератора и триггера. При вводе записи в таблицу, значение этого поля не доступно. Оно появляется лишь после IBDataSet.Close и IBDataSet.Open. Это очень коряво, есть ли вариант получше?
Rex (2002-01-23 15:06:00) [1]2Romkin
Никак. У меня c триггером не получилось. Но по вашему (с процедурой) всё работает.
Romkin (2002-01-23 14:13:00) [2]Я ж говорю - на клиенте и вставляй, чтобы перечитывать не пришлось. И как ты в триггере определишь родительскую запись?
Digitman (2002-01-23 14:12:00) [3]см. TIBDataSet.RefreshSQL
Rex (2002-01-23 13:31:00) [4]А если я хочу, чтобы значение этого поля было записано в дочернюю таблицу. Можно ли заставить работать какой-нибудь триггер, который бы на before insert дочерней таблицы вставлял значение поля из родительской ?
Romkin (2002-01-23 11:48:00) [5]Просто получай значение триггера на OnNewRecord, у меня просто организованы не триггера, а процедуры вида
create procedure <TableName>_ID
returns(ID integer)
as
begin
ID = Gen_ID(<GeneratorName>,1);
end
Для каждой таблицы. НА клиенте есть TStoredProc, и делается вызов:
SpID.StoredProcName := TableName + "_ID";
SpID.ExecProc;
NewID := SpID.ParamByName("ID").asInteger;
и пользуешься, причем в триггере присвоение, если значение поля NULL
Alexandr (2002-01-23 11:46:00) [6]сорри.
Догадался IBX с политры Interbase
я не знаю как легче это сделать в IBX, кстати, а какой текст у генератора?
Alexandr (2002-01-23 11:45:00) [7]какими компонентами пользуешься?