Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
3-1100675438
Дырчик
2004-11-17 10:10
2004.12.19
Поле типа дата


14-1101264585
Думкин
2004-11-24 05:49
2004.12.19
С днем рождения! 24 ноября


1-1101913844
Суслик
2004-12-01 18:10
2004.12.19
Руссификация MessageDlg


1-1102186302
Bobby Digital
2004-12-04 21:51
2004.12.19
TSynEdit ...


14-1101457481
Gorlum
2004-11-26 11:24
2004.12.19
Тестирование памяти





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский