Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поля с автоинкрементом в InterBase [D6, IB6.x]


DmitryMN ©   (2002-09-13 13:21:00) 

Подскажите - как задать поле с автоинкрементом в InterBase?
ГЕсть ли такой тип поля или нужно создавать триггер с генератором?


DmitryMN   (2002-09-13 16:13:00) [1]

Все спасибо:)
Буду пользоваться генератором и триггером:)


Wolf226   (2002-09-13 15:56:00) [2]

Ну скажем так, я обошелся без тригерра. Но без генератора обойтись нельзя. Ну нету autoinc в Interbase.


Johnmen   (2002-09-13 15:38:00) [3]

>Prooksius © (13.09.02 15:10)
>2 Johnmen © (13.09.02 14:49)
>Неправда ваша...
>ХП и генератор. :))))

Правда моя ! Автор спрашивал про автоинкремент !
А у тебя не авто...

Тоже самое относится и к Wolf226 (13.09.02 15:21).



Wolf226   (2002-09-13 15:21:00) [4]

Держи альтернативный метод

var Q,DS:TQuery;
// DS - это наш ДатаСет в котором поле ID - autoinc
// Q - это для вытягиватия генератора

...

procedure TForm1.DSBeforeInsert(DataSet:TDataSet)
begin
with Q do
begin
close;
Sql.Text:="select gen_id( generatorname,1) from rdb$database";
open;
DataSet.fieldvalues["id"]:=fields[0].value;
end;
end;


Prooksius   (2002-09-13 15:10:00) [5]

2 Johnmen © (13.09.02 14:49)
Неправда ваша...
ХП и генератор. :))))

2 DmitryMN (13.09.02 14:31)
Учи матчасть.


3JIA9I CyKA   (2002-09-13 15:10:00) [6]

>>ГЕсть ли такой тип поля или нужно создавать триггер с генератором?
1) Нет такого типа.
2) ГЕсть пишется без "Г".
3) Ещё вопросы?


Johnmen   (2002-09-13 14:49:00) [7]

>DmitryMN (13.09.02 14:31)

Не существует никаких "альтернативные варианты создания полей с автоинкрементом" кроме, как было сказано выше, через триггер с генератором !
IBExpert лишь поможет автоматизировать этот процесс...


DmitryMN   (2002-09-13 14:31:00) [8]

2 3JIA9I CyKA: Меня интересуют альтернативные варианты создания полей с автоинкрементом. Вариант создания триггера и генератора я знаю. ("Гипократ" пишиется с двумя "п")
2 Johnmen ©: совет -= Demon =- хорошой но на этот счет я уже написал выше.
2 Alexandr : спасибо - посмотрю IBExpert


Johnmen   (2002-09-13 14:14:00) [9]

>DmitryMN (13.09.02 14:04)
>Хотел узнать мнения мастеров.
>Но пока ничего путного не услышал.

Просто не хотел слышать...:(
Или совет -= Demon =- (13.09.02 13:33) ты считаешь беспутным ?


3JIA9I CyKA   (2002-09-13 14:14:00) [10]

2DmitryMNУважаемый DmitryMN!
Если с документацией у Вас всё в порядке, и Вы задаёте ТАКИЕ вопросы в форуме, значит Вам надо к другим мастерам. А здесь мало кто давал клятву Гипократа.

2-= Demon =-
1) create generator BLABLABLA
2)
create triger BUBUBU for TableName;
before insert;
begin
new.id = GEN_ID(BLABLABLA, 1);
end;

Так, вроде...


Val   (2002-09-13 14:14:00) [11]

>DmitryMN (13.09.02 14:04)
на этот вопрос не нужно мнений, тут нужно знание.


Alexandr   (2002-09-13 14:10:00) [12]

вообщемжно создавать триггер с генератором.
Но при работе с базой с помощью продвинутых инструментов вроде IBExpert эта операция максимано упрощена до двух нажатий мышкой.


DmitryMN   (2002-09-13 14:04:00) [13]

2 Alexandr:
С документацией все в порядке.
Хотел узнать мнения мастеров.
Но пока ничего путного не услышал.
Видать были мастера - да вышли все:)


Johnmen   (2002-09-13 13:51:00) [14]

>-= Demon =- (13.09.02 13:33)

Весьма любопытный синтаксис работы с генератором...:)
Я такого еще не встречал !


Alexandr   (2002-09-13 13:50:00) [15]

2-= Demon =- : идея правильная, реализация нерабочая


-= Demon =-   (2002-09-13 13:33:00) [16]

Нет, такого поля нет. Но вводится поле типа integer (пусть его имя "id") и создается генератор:
create generator GenID;
И пишется следующий триггер:
create triger TBI_AutoInc for TableName;
before insert;
begin
new.id = GenID;
end;


Alexandr   (2002-09-13 13:25:00) [17]

взял бы ты с www.ibexpert.com программку
и заюзал ее, если уж с документацией справиться не можешь...


Наверх

Титульная страница Поиск, карта сайта Написать письмо