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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2018, 17:51   #1
zqqwerty@mail.ru
Новичок
Джуниор
 
Регистрация: 19.06.2018
Сообщений: 1
По умолчанию Mismatch in datapacket

База на Firebird 2.5
Вставка записей в таблицы ITEM_PARAMS, EVR_ITEMS происходит через компоненты IBTable (atItemParams, atEvrItems).
В таблице EVR_ITEMS поле ITEM_ID с ключем primary key
В таблице ITEM_PARAMS два поля: ITEM_ID, PARAM.
PK_ITEM_PARAMS (primary key) действует на эти два поля.

Периодически возникает ошибка
ОШИБКА:'violation of PRIMARY or UNIQUE KEY constraint "PK_ITEM_PARAMS" on table "ITEM_PARAMS"'
за ней
ОШИБКА:'Mismatch in datapacket.'

Поле ITEM_ID в таблице ITEM_PARAMS заполняется из таблицы EVR_ITEMS, где этому полю присваиваются значения через генератор (генератор выполняется в триггере, выдает значение перед вставкой в таблицу EVR_ITEMS):
AS
begin
NEW.ID = GEN_ID(GEN_EVR_ITEMS_ID,1);
if (new.item_no = -1) then
new.item_no = null;
end

Изменения в базу записываются путем выполнения последовательно
atEvrItems.Open;
atItemParams.Open;

Пробовал убрать триггер и генерировать новые ITEM_ID в коде,
пробовал переписать триггер как в официальном мануале http://www.ibase.ru/generator/
Не помогло, ошибка возникает регулярно, но большую часть времени код работает правильно, программа не многопользовательская
zqqwerty@mail.ru вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
type mismatch 4anae6 Microsoft Office Excel 1 27.03.2013 23:51
DATAPACKET в XML den.mob Компоненты Delphi 2 01.05.2012 12:24
TYPE MISMATCH desnet Паскаль, Turbo Pascal, PascalABC.NET 4 17.12.2011 10:25
алгоритм mismatch getUp Общие вопросы C/C++ 2 07.12.2009 17:31