![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поля с автоинкрементом в 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 программку
и заюзал ее, если уж с документацией справиться не можешь...