"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.

Ответить