Уведомление Excel 2007 об изменениях в базе данных в SQL Server 2008 R2

У меня много проблем с использованием Excel 2007 вместе с SQL Server 2008 R2.

Мне нужно обмениваться данными между двумя или более книгами, и я хочу сделать это с помощью базы данных SQL (помещенной в SQL Server 2008 R2) на удаленном сервере. Я использую VBA с ADO и поставщиком OLE DB для собственного клиента SQL Server в качестве поставщика доступа к данным. Когда один клиент загрузил данные из Excel в базу данных, я хочу, чтобы SQL Server 2008 R2 отправлял другим книгам сигнал о том, что база данных была изменена, и у меня возникает вопрос, как это сделать? И могу ли я сделать это в VBA?

Я выяснил, как использовать уведомления о событиях в SQL Server 2008 R2, но опять-таки моя проблема заключается в том, как уведомлять Excel без запуска макроса, который запрашивает сообщения в очереди компонента Service Broker каждые 30 секунд или около того. Кроме того, я знаю, что Excel 2007 не поддерживает многопоточность, и, поскольку мне нужно, чтобы Excel запускал и другие макросы, это не решение для запуска этих проверок каждую 30-ю секунду.

1 ответ

Способ сделать это на самом деле через Excel. В то время как пользователь / событие вызывается VBA является однопоточным, Application.OnTime работает в независимом потоке. Если вы хотите, чтобы это происходило даже тогда, когда рабочая книга закрыта, рассмотрите возможность использования службы на стороне клиента.

Запустить таймерный вызов из Excel на сервер SQL гораздо проще и дешевле, чем использовать SQL Server, чтобы обратить внимание на клиентские рабочие книги.

Другие вопросы по тегам