Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2014, 11:20   #1
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию Автоинкремент поля при добавлении записи. IBExpert.

Здравствуйте.
Для добавления записи в таблицу использую следующий sql-запрос
Код:
insert into request (REQUESTCD, ACCOUNTCD, EXECUTORCD, FAILURECD, INCOMINGDATE, EXECUTIONDATE, EXECUTED)
values (24,'443690', 1, 6, '1-07-2014', '27-07-2014', 1);
Так вот как мне сделать что бы Код заявки (requestcd) вычислялся как следующий по порядку?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 21.07.2014, 12:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я так делаю:
Код:
insert into request (REQUESTCD, ACCOUNTCD, EXECUTORCD, FAILURECD, INCOMINGDATE, EXECUTIONDATE, EXECUTED)
values ((select max(REQUESTCD)+1 from request ),'443690', 1, 6, '1-07-2014', '27-07-2014', 1);
Глюк будет только если таблица пустая. может быть на FB2.5 и появились нормальные автоинкременты, а в полтарушной версии их нормальных не было.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.07.2014, 13:16   #3
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Stillet, спасибо. Я пытался написать что то подобное. Только вместо функции max писал count(REQUESTCD)+1. С ней не работало.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 21.07.2014, 13:24   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста. А что за Огнептица? Какой версии?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.07.2014, 13:44   #5
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Еще можно посмотреть в сторону триггеров. Ну или просто взять на заметку их существование)
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 21.07.2014, 13:47   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
VIK_aka_TOR
А именно так и выкручиваются. Триггерами + Генераторами
Но мне вот так не оч удобно - я делаю как выше написал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.07.2014, 13:58   #7
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
А что за Огнептица? Какой версии?
Firebird 2.5
Цитата:
Еще можно посмотреть в сторону триггеров. Ну или просто взять на заметку их существование)
Да я уже тоже начал думать, что без них не справится. Везде только о тригерах и пишут. Ну я не очень понял как их писать и главное как их потом использовать в sql.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 21.07.2014, 14:13   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Firebird 2.5
По-моему там автоинкрементное поле уже нормально сделали. Или не?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.07.2014, 15:19   #9
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Здесь в настройках поля БД есть вкладка "автоинкремент". И там можно либо создать новый генератор, либо использовать существующий. Я вот создал новый генератор, но не понимаю где и как его использовать.
Пробовал так
Код:
insert into request (REQUESTCD, ACCOUNTCD, EXECUTORCD, FAILURECD, INCOMINGDATE, EXECUTIONDATE, EXECUTED)
values ( gen_request_id,'443690', 1, 6, DATE 'NOW'-30, null, 1);
но выдает ошибку. Неизвестный столбец gen_request_id.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 21.07.2014, 15:28   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это функция: http://firebirdsql.su/doku.php?id=gen_id
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBGridEh тормозит при добавлении записи Jora_Kornev БД в Delphi 5 02.03.2012 09:17
ошибка при добавлении записи kuzmich БД в Delphi 3 20.10.2011 03:55
Ошибка при добавлении записи Itachi БД в Delphi 1 10.06.2011 13:30
Обновление поля со счетчиком при добавлении записи через форму в клиент-серверной БД byte916 Microsoft Office Access 7 08.06.2010 02:17
Проверка при добавлении записи Tanya2008 БД в Delphi 3 22.04.2009 10:07