| ** Dizapp | 
| Отправлено: 09.05.2006, 20:03 |  | 
| 
 Не зарегистрирован
 
 
 
 
 
 
 
  
 | мне нужно автоинкремент, но чтобы id увеличивался каждый раз в два раза по сравнению с предыдущем | 
|  | 
| Valdemar | 
| Отправлено: 10.05.2006, 07:46 |  | 
| 
 Мастер участка
 
 Группа: Участник
 Сообщений: 433
 
 
 
  
 | Сделайте триггер на вставку новой записи и в нем генерируйте нужное значение. | 
|  | 
| ** Dizapp | 
| Отправлено: 10.05.2006, 16:07 |  | 
| 
 Не зарегистрирован
 
 
 
 
 
 
 
  
 | Делаю так | CODE |  | AS
 declare variable X integer;
 BEGIN
 IF (NEW.IDGROUP IS NULL) THEN
 begin
 if(x=0) then x=1;
 NEW.IDGROUP = GEN_ID(GEN_GROUPS_ID,X*2);
 X = new.idgroup;
 end
 END
 | 
 А при вставке выдает ошибку
 validation error for column IDGROUP, value "***null**".
 А чего я не так пишу?
 | 
|  | 
| olegenty | 
| Отправлено: 11.05.2006, 11:53 |  | 
| 
 Ветеран
 
 Группа: Модератор
 Сообщений: 2412
 
 
 
  
 | if (x=0) then x=1 — никогда не срабатывает. х = NULL. видимо, и gen_id в этом случае даёт NULL. (NULL * 2 = NULL). | 
|  | 
| ** Dizapp | 
| Отправлено: 11.05.2006, 15:57 |  | 
| 
 Не зарегистрирован
 
 
 
 
 
 
 
  
 | вот теперь нормально все срабатывает И при вставке значений в ibexpert'e все замечательно работает. А когда вставлаю из билдера| CODE |  | AS
 declare variable X integer;
 BEGIN
 IF (NEW.IDGROUP IS NULL) THEN
 begin
 X = GEN_ID(GEN_GROUPS_ID,0);
 if (X=0) then X=1;
 NEW.IDGROUP = GEN_ID(GEN_GROUPS_ID,X);
 end
 END
 | 
 
 | CODE |  | for(Form21->IBDataSet1->First();!Form21->IBDataSet1->Eof;Form21->IBDataSet1->Next()) {
 str=Form21->IBDataSet1->FieldByName(Form21->NameGroup)->Value;
 Form3->CheckListBox1->Items->Add(str);
 Form1->IBDataSet1->Insert();
 Form1->IBDataSet1->FieldByName("NAMEGROUP")->Value=str;
 Form1->IBDataSet1->FieldByName("COUNTPARAM")->Value=0;
 Form1->IBDataSet1->Post();
 }
 | 
 То заполняется просто с увеличанием на 1. Ничего не понимаю
 | 
|  | 
| ** Dizapp | 
| Отправлено: 12.05.2006, 13:29 |  | 
| 
 Не зарегистрирован
 
 
 
 
 
 
 
  
 | Все. разобралась. Всем спасибо. | 
|  |