powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Mismatch in datapacket (компоненты IBTable)
10 сообщений из 10, страница 1 из 1
Mismatch in datapacket (компоненты IBTable)
    #39663481
zqqwerty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
База на 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/
Не помогло, ошибка возникает регулярно, но большую часть времени код работает правильно, программа не многопользовательская

Подскажите как поправить или куда копать? переделать на другие компоненты не получится, слишком большой проект.
...
Рейтинг: 0 / 0
Mismatch in datapacket (компоненты IBTable)
    #39663487
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zqqwerty,

Там у тебя ClientDataSet не затесался? "Missmatch in datapacket" - это вроде он кидает.
...
Рейтинг: 0 / 0
Mismatch in datapacket (компоненты IBTable)
    #39663503
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
21.06.2018 11:29, zqqwerty пишет:
> переделать на другие компоненты не получится, слишком большой проект.

и весь проект построен на TIBTable?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Mismatch in datapacket (компоненты IBTable)
    #39663511
zqqwerty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster, без него не обошлось.

ОШИБКА:'violation of PRIMARY or UNIQUE KEY constraint "PK_ITEM_PARAMS" on table "ITEM_PARAMS"':
IB.IBDataBaseError + $23E
IBDatabase.TIBTransaction.Call + $7A
IBSQL.TIBSQL.Call + $22
IBSQL.TIBSQL.ExecQuery + $222
IBCustomDataSet.TIBCustomDataSet.InternalPostRecord + $11B
IBCustomDataSet.TIBCustomDataSet.WriteRecordCache + $36
IBCustomDataSet.TIBCustomDataSet.InternalPost + $A9
Db.TDataSet.CheckOperation + $29
Db.TDataSet.Post + $48
IBCustomDataSet.TIBCustomDataSet.Post + $E4
Provider.TDataSetResolver.PutRecord + $8C
Provider.TDataSetResolver.DoInsert + $12
Provider.TCustomResolver.InternalUpdateRecord + $1DB
Provider.TUpdateTree.DoUpdates + $3F
Provider.TUpdateTree.DoUpdates + $68
Provider.TCustomResolver.ApplyUpdates + $A5
Provider.TBaseProvider.InternalApplyUpdates + $67
Provider.TDataSetProvider.InternalApplyUpdates + $129
Provider.TCustomProvider.DoApplyUpdates + $98
Provider.TCustomProvider.ApplyUpdates + $22
Provider.TLocalAppServer.AS_ApplyUpdates + $4C
Dbclient.TCustomClientDataSet.DoApplyUpdates + $8A
Dbclient.TCustomClientDataSet.ApplyUpdates + $67
...
Рейтинг: 0 / 0
Mismatch in datapacket (компоненты IBTable)
    #39663526
zqqwerty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий,

работа со всеми таблицами через TIBTable,
тут их порядка 20 компонентов.

в процедуре TCustomProvider.BeforeApplyUpdates
все TIBTable и выполняются друг за другом, в том числе проблемные:

atEvrParams.Open;
atItemParams.Open;
...
Рейтинг: 0 / 0
Mismatch in datapacket (компоненты IBTable)
    #39663540
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
21.06.2018 12:06, zqqwerty пишет:
> тут их порядка 20 компонентов.

и это БОЛЬШОЙ проект?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Mismatch in datapacket (компоненты IBTable)
    #39663603
zqqwerty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий,

переделать то можно, но распутывать все эти цепочки компонентов завязанных на этих TIBTable не хочется без крайней необходимости, вот и обратился на форум за поиском более быстрого решения проблемы.
...
Рейтинг: 0 / 0
Mismatch in datapacket (компоненты IBTable)
    #39663615
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zqqwerty,

тогда не по адресу, это в раздел Delphi надо.
...
Рейтинг: 0 / 0
Mismatch in datapacket (компоненты IBTable)
    #39663617
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvэто в раздел Delphi надо.

Скорее в раздел "Работа".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Mismatch in datapacket (компоненты IBTable)
    #39663648
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zqqwerty,

короче.
violation of PRIMARY or UNIQUE KEY constraint - это одна ошибка. решается явным указанием соответствующего значения ПК в программе перед Post

Mismatch in datapacket - это другая ошибка, относится к ClientDataSet и работе с xml. Гуглится по фразе "Mismatch in datapacket delphi".

С обеими ошибками надо в раздел Delphi.

p.s. лично я не вижу проблем, почему всё это нельзя отловить в отладчике Delphi.

Модератор: Тема перенесена из форума "Firebird, InterBase".
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Mismatch in datapacket (компоненты IBTable)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]