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

Вниз

инкрементирования   Найти похожие ветки 

 
DWW   (2004-11-16 08:07) [0]

Помогите пожалуйста разобраться что нужно подставить
Это то я нашел для ключевого поля, его инкрементирования
Определение хранимой процедуры:

 Create Procedure NewEmployeeKey Returns ( EmployeeKey Integer ) as
 begin
   EmployeeKey = Gen_Id( gnEmployeeKey, 1 ) ;
 end
Определение триггера:
 Create Trigger SetEmployeeKey for tbEmployee Active Before Insert Position 0 as
 begin
   if ( New.EmployeeKey is Null ) then begin
     Execute Procedure NewEmployeeKey Returning_Values New.EmployeeKey ;
   end
 end


 
Rule ©   (2004-11-16 08:51) [1]

чегото ты намудрил, зачем тебе процедура
юзай IBExpert  и посмотри что он генерит

сначала создаешь генератор для своей таблицы
CREATE GENERATOR gnEmployeeKey

а мотом тригер перед вставкой
CREATE TRIGGER SetEmployeeKey FOR tbEmployee
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.EmployeeKey IS NULL) THEN
   NEW.EmployeeKey = GEN_ID(SetEmployeeKey,1);
END

вот так вот
причем автоинкремент, как видно из кода, можно делать и не на ключевый полях (только тогда смысл непонятен) или по условию или ещё чего хочешь ...


 
DWW   (2004-11-16 22:28) [2]

А как получить его (значение генератора) в Delphi, у меня не получалось


 
DrPass ©   (2004-11-17 00:10) [3]

Если используешь для его вставки триггер, то ты его не получишь, да и не надо - оно само вставится.
Если ты все же хочешь его получить, убери триггер, а получай запросом вида select GEN_ID(SetEmployeeKey,1) from rdb$database,
а потом уже делай с ним что хочешь.


 
Sergey13 ©   (2004-11-17 09:53) [4]

2[3] DrPass ©   (17.11.04 00:10)
>Если ты все же хочешь его получить, убери триггер,
Зачем убирать? Он не мешает. 8-)



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
1-1101918145
Unknown user
2004-12-01 19:22
2004.12.19
Если кто-то работал с ZLib, помогите!


14-1101583996
Verg
2004-11-27 22:33
2004.12.19
За что бывает обидно


1-1102410684
Лариса
2004-12-07 12:11
2004.12.19
Горячие клавищи


6-1097261922
QuestionX
2004-10-08 22:58
2004.12.19
Размер принимаемых данных


1-1102329190
pasergey
2004-12-06 13:33
2004.12.19
delphi + 1c 8.0