Уведомление Excel 2007 об изменениях в базе данных в SQL Server 2008 R2 - PullRequest
1 голос
/ 04 июля 2011

У меня много проблем с использованием 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 Ответ

0 голосов
/ 07 декабря 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...