Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
koklobok Member Откуда: Сообщений: 2 |
Имеем 1С:Предприятие 7.7 + MS SQL SERVER 2000. Требуется сделать логгирование изменений: в отдельную таблицу кидать измененные записи из разных таблиц. Таблица предполагатся использовать для обмена с другими системами, чтобы перекидывать только измененные данные. Создал таблицуCREATE TABLE [dbo].[_ExchangePlan] ( [DBSIGN] [char] (3) [TYPEID] [int] , [OBJID] [char] (9) ) ON [PRIMARY] GO где DBSIGN - имя внешней базы, TYPEID - тип объекта 1С, OBJID - ключевое поле объекта 1С из его таблицы для тестирования сделал триггер на одну из таблиц CREATE TRIGGER [_tr_tmc_upd] ON [dbo].[SC33] FOR INSERT, UPDATE AS IF NOT EXISTS (SELECT * FROM INSERTED) RETURN; INSERT INTO _ExchangePlan (DBSIGN, TYPEID, OBJID) SELECT 'UPP', 34, ID from inserted ; При выполнении тригера получаю ошибку Connection is busy with results for another hstm. Гугл говорит мне про MARS которого в 2000 нет, кроме того насколько понимаю это свойство подключения к которому я не имею доступа. Вопрос в том как все таки решить задачу добавления обновляемых записей в отдельную таблицу, возможно я неправильно создал саму таблицу? |
14 май 13, 11:28 [14291360] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
О, и какая команда "выполнения триггера" ?
Наверное надо использовать правильные методы в вашем приложении ? |
||||
14 май 13, 11:33 [14291402] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
CREATE TRIGGER [_tr_tmc_upd] ON [dbo].[SC33] FOR INSERT, UPDATE AS SET NOCOUNT ON IF NOT EXISTS (SELECT * FROM INSERTED) RETURN; INSERT INTO _ExchangePlan (DBSIGN, TYPEID, OBJID) SELECT 'UPP', 34, ID from inserted ; |
14 май 13, 11:34 [14291413] Ответить | Цитировать Сообщить модератору |
koklobok Member Откуда: Сообщений: 2 |
Спасибо за ликбез.
К сожалению в 1С 7.7 нет возможности глобально следить за изменениями в таблицах данных, то есть чтобы отслеживать изменения нужно знать все места где эти изменения произошли, а это и сама конфигурация и всевозможные внешние обработки. В 1С 8.х с этим проблем нет. 2 invm Большое спасибо, помогло. |
||||
14 май 13, 12:05 [14291719] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Правильно надо клиентский код писать. Если вам не нужны возвращаемые сервером результаты, то используйте методы, которые их игнорируют. Потому что, пока результат не прочитан, Connection is busy with results for another hstm. |
||
14 май 13, 12:08 [14291746] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |