Автор Тема: Проблема с генераторами в Firebird 1.5  (Прочитано 857 раз)

0 Пользователей и 1 Гость просматривают эту тему.

BigFoot

  • Гость
#0: 20 Октября 2004, 15:46:01
Народ! Помогите, пожалуйста, советом. Суть проблемы такая: есть сеть из 5 машин, на одной из них установлен Firebird 1.5, на других - клиентские библиотеки доступа. Программа для работы с БД написана на Delphi 6 с использованием компонент FIBPlus 5.3. В режиме работы с несколькими пользователями одновременно (стандартно) сначала все идет нормально, генератор уникального ключа в таблице работает правильно, но иногда бывает, что очередная запись на клиенте не сохраняется на сервере. И так для всех клиентов. Открываю средство администрирования сервера Firbird и вижу, что номер последней записи (к примеру) 2690, а генератор показывает текущее значение 2685. Генератор работает в режиме \"on new record, before insert\". Пользователи никогда не сохраняют новые записи одновременно.

Теперь вопросы:

1. Как такое может быть: генератор остановился, а уникальные значения первичному ключу все еще присваиваются?
2. Почему происходит сбой генератора уникального значения? Синтаксис вроде бы правильный...

Нахухоль

  • ***
  • Сообщений: 1720
    • Просмотр профиля
#1: 20 Октября 2004, 15:58:44
Сильно зависит от многих тонкостей твоего приложения.
Трудно сказать по тем симптомам, что ты указал. Причин может быть много.
Прямая дорога тебе на http://www.sql.ru/forum/actualtopics.aspx?bid=2
с таким вопросом.

нах.

DyPEHb

  • Гость
#2: 21 Октября 2004, 08:40:40
2 BigFoot:
---Генератор работает в режиме \"on new record, before insert\"
Это как? Ты имеешь ввиду триггер before insert?
Каким образом ты узнаёшь текущее значение генератора?
попробуй явно вызвать gen_id(имя_генератора,1)

Напиши, пожалуйста чем всё кончилось, оч. интересно :)