Страница 1 из 1

Interbase 7.1 и ZEOS - скачет ID.

Добавлено: 21 июл 2011, 14:59
eu6pc
Добрый день!
Имеем: Delphi 7, Interbase 7.1, ZEOS 6.6.5. stable.

В БД есть таблица, в таблице есть поле ID. - автоинкрементное, используется генератор и триггер.
Если вставлять в базу записи вручную запросом Insert из IBEXPERT - все работает замечательно.

Если я добавляю записи из программы на Delphi, то тоже все работает хорошо, НО почему-то поле ID - прибавляется не по 1-му,а сразу по 2: 1,3,5,7,...
Понять не могу -почему так ?
Использую Zquery,Zsequence,ZUpdateSQL. Все настроено правильно. Если в Zsequence установить свойство Blocksize=0, то тогда все работает отлично, но оно должно быть равным единице.
Подскажите, почему так ? Такое чувство что генератор где-то вызывается дважды, хотя такого нет.
В настройках Zconnection нету протокола Interbase 7, есть только Interbase6 - я установил его. Это правильно ? В описании ZEOS сказано что работает с Interbase вплоть до версии 7.5, хотя такого в протоколах нету.
Глюк ZEOS или я торможу ?

Re: Interbase 7.1 и ZEOS - скачет ID.

Добавлено: 21 июл 2011, 21:09
kdv
если в IBExpert при insert инкремент генератора нормальный, а в приложении - нет, значит, в приложении где-то кто-то инкрементирует генератор.
Zeos - весьма экзотический выбор. Смотрите его исходники, или включите мониторинг уходящих на сервер запросов, если такое есть в zeos.

Re: Interbase 7.1 и ZEOS - скачет ID.

Добавлено: 22 июл 2011, 11:23
eu6pc
Разобрался - добавил поле ID в список обновляемых UPDATESQL - и все заработало как надо.
Почему оно так получалось - не ясно, видимо я все таки торможу.
Всем спасибо за помощь!
P.S. Не сказал бы что ZEOS уж настолько экзотичен ;)

Re: Interbase 7.1 и ZEOS - скачет ID.

Добавлено: 23 июл 2011, 01:15
kdv
экзотичен. Использующих его для IB/FB микроскопическое число есть :)
в большинстве это IBX, FIBPlus, ODBC, OLE DB, PHP. Zeos в данном случае делит единицы процентов с остальными такой же экзотичности библиотеками. Для других СУБД zeos может и не столь экзотичен, но для ИБ-ФБ - факт.