|
|
|
Mismatch in datapacket (компоненты IBTable)
|
|||
|---|---|---|---|
|
#18+
База на 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/ Не помогло, ошибка возникает регулярно, но большую часть времени код работает правильно, программа не многопользовательская Подскажите как поправить или куда копать? переделать на другие компоненты не получится, слишком большой проект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 11:29 |
|
||
|
Mismatch in datapacket (компоненты IBTable)
|
|||
|---|---|---|---|
|
#18+
zqqwerty, Там у тебя ClientDataSet не затесался? "Missmatch in datapacket" - это вроде он кидает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 11:37 |
|
||
|
Mismatch in datapacket (компоненты IBTable)
|
|||
|---|---|---|---|
|
#18+
21.06.2018 11:29, zqqwerty пишет: > переделать на другие компоненты не получится, слишком большой проект. и весь проект построен на TIBTable? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 11:47 |
|
||
|
Mismatch in datapacket (компоненты IBTable)
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 11:55 |
|
||
|
Mismatch in datapacket (компоненты IBTable)
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, работа со всеми таблицами через TIBTable, тут их порядка 20 компонентов. в процедуре TCustomProvider.BeforeApplyUpdates все TIBTable и выполняются друг за другом, в том числе проблемные: atEvrParams.Open; atItemParams.Open; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 12:06 |
|
||
|
Mismatch in datapacket (компоненты IBTable)
|
|||
|---|---|---|---|
|
#18+
21.06.2018 12:06, zqqwerty пишет: > тут их порядка 20 компонентов. и это БОЛЬШОЙ проект? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 12:17 |
|
||
|
Mismatch in datapacket (компоненты IBTable)
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, переделать то можно, но распутывать все эти цепочки компонентов завязанных на этих TIBTable не хочется без крайней необходимости, вот и обратился на форум за поиском более быстрого решения проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 13:21 |
|
||
|
Mismatch in datapacket (компоненты IBTable)
|
|||
|---|---|---|---|
|
#18+
zqqwerty, тогда не по адресу, это в раздел Delphi надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 13:35 |
|
||
|
Mismatch in datapacket (компоненты IBTable)
|
|||
|---|---|---|---|
|
#18+
kdvэто в раздел Delphi надо. Скорее в раздел "Работа". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 13:39 |
|
||
|
Mismatch in datapacket (компоненты IBTable)
|
|||
|---|---|---|---|
|
#18+
zqqwerty, короче. violation of PRIMARY or UNIQUE KEY constraint - это одна ошибка. решается явным указанием соответствующего значения ПК в программе перед Post Mismatch in datapacket - это другая ошибка, относится к ClientDataSet и работе с xml. Гуглится по фразе "Mismatch in datapacket delphi". С обеими ошибками надо в раздел Delphi. p.s. лично я не вижу проблем, почему всё это нельзя отловить в отладчике Delphi. Модератор: Тема перенесена из форума "Firebird, InterBase". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 14:12 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39663503&tid=2040716]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
179ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 467ms |

| 0 / 0 |
