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

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
eu6pc
Сообщения: 3
Зарегистрирован: 21 июл 2011, 14:47

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

Сообщение eu6pc » 21 июл 2011, 14:59

Добрый день!
Имеем: 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 или я торможу ?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

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

Сообщение kdv » 21 июл 2011, 21:09

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

eu6pc
Сообщения: 3
Зарегистрирован: 21 июл 2011, 14:47

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

Сообщение eu6pc » 22 июл 2011, 11:23

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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

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

Сообщение kdv » 23 июл 2011, 01:15

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

Ответить