"Andrei" ...
Пользуйтесь трейсом :) Вот несколько интересных записей :
1. Создание коннекта 8
2010-03-21T18:31:32.6060 (4072:034C81AC) ATTACH_DATABASE
...\GEDEMIN\TESTCASE\DEVEL.FDB (ATT_8, SYSDBA:NONE, TCPv4:127.0.0.1)
...
2. Создание коннекта 9
2010-03-21T18:31:35.4500 (4072:034C7744) ATTACH_DATABASE
...\GEDEMIN\TESTCASE\DEVEL.FDB (ATT_9, SYSDBA:NONE, TCPv4:127.0.0.1)
...
3. Создание триггера GD_bi_STORAGE_DATA10 (в коннекте 8)
2010-03-21T18:31:38.9500 (4072:034C81AC) EXECUTE_STATEMENT_START
...\GEDEMIN\TESTCASE\DEVEL.FDB (ATT_8, SYSDBA:NONE, TCPv4:127.0.0.1)
CREATE OR ALTER TRIGGER GD_bi_STORAGE_DATA10 FOR GD_STORAGE_DATA
...
4. Запрос, возвращающий ошибку (выполняется в коннекте 9)
2010-03-21T18:31:48.2310 (4072:034C7744) FAILED EXECUTE_STATEMENT_FINISH
...\GEDEMIN\TESTCASE\DEVEL.FDB (ATT_9, SYSDBA:NONE, TCPv4:127.0.0.1)
UPDATE OR INSERT INTO gd_storage_data (id, parent, name, data_type, str_data, int_data, datetime_data, curr_data, blob_data,
editorkey, editiondate) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) MATCHING (id)
Итого - коннект 9 создан до того, как коннект 8 создал триггер,
присваивающий новое
значение уникальному полю. В коннекте 9 вставляем 2 строки - вторая вставка
обламывается,
т.к. этот коннект не видит триггер (у нас CS) и в уникальное поле идут
умолчательные значения.
В SS кеш метаданных общий, и коннект 9 видит триггер, созданный в коннекте 8.
--
Хорсун Влад
To unsubscribe from this group, send email to ru-firebird+unsubscribegooglegroups.com or
reply to this email with the words "REMOVE ME" as the subject.