2012-04-13 7 views
1

Мне нужно подключиться и отправлять/получать информацию с сервера MS SQL в приложении Lotus Notes с помощью @formula в реальном времени (я могу подключиться с помощью агента, но для этого мне нужно использовать встроенный код).Lotus Notes ODBC Connection

Команды сами по себе выглядят довольно прямолинейно, но настройка конфигураций, похоже, является темой с ограниченной документацией. По-видимому, мне нужно установить драйвер ODBC. Где я могу найти это, и установить его на сервер или на рабочие станции, которые будут запускать это приложение?

Если бы какой-либо гуру Lotus мог меня навестить, настроив это, было бы весьма полезно.

Благодаря

ответ

3

Вам необходимо установить драйвер ODBC на рабочих станциях, использующих это приложение, если пользователи будут запуская соединения ODBC. Если это вообще возможно, я настоятельно рекомендую установить это на стороне сервера и запустить его через агента. Это избавит вас от нескольких головных болей, включая необходимость поддерживать соединения ODBC на каждой рабочей станции и беспокоиться о том, имеет ли каждая рабочая станция доступ к данным и серверу.

Прежде всего, вы просто хотите убедиться, что ваша настройка ODBC верна. Разумеется, вам понадобится соответствующий драйвер и информация о подключении. У этого сайта есть прошив, чтобы дать представление об how to setup an ODBC database connection

Если у вас есть MS Access, вы можете использовать его для проверки запросов из источника данных ODBC. После того, как вы протестировали подключение, вы просто обратитесь к имени источника данных (DSN) в формулах @DbColumn, @DbLookup или @DbCommand.

Назад к моему предложению по настройке этого на стороне сервера, это означает, что вы сохранили бы копию данных, которые вы запрашиваете, в самой базе данных Notes, а затем пользователи будут взаимодействовать с данными только для чтения в примечаниях. Вы можете регулярно планировать обновления на стороне сервера этих данных только для чтения и эффективно создавать кэш данных в среде Notes. Затем эти данные будут реплицироваться на другие реплики базы данных, но устраняют проблему соединения ODBC, которое требуется повсюду.

Если вам нужны данные в реальном времени, это решение выходит из окна, и вам придется пойти с локальным решением. В этом случае вы можете посмотреть класс LCConnection или использовать ADODB.Connection из сценария, так как оба позволят вам создавать соединения с источниками данных без DSN. Затем вы сохранили бы проблему необходимости использования источников данных ODBC на каждой рабочей станции и только беспокоиться о том, могут ли они получить доступ к серверу со своей рабочей станции.

+0

спасибо. Это была точная информация, которую я искал. –

+3

Обратите внимание: если вы используете 32-разрядную версию Lotus Domino на 64-разрядной версии Windows Server, то вам необходимо определить источники данных ODBC в 32-разрядной программе администратора ODBC, а не в стандартном 64-битном ODBC Программа администратора. Это связано с тем, что драйверы ODBC Lotus Domino 32-разрядные. 32-разрядная программа администратора ODBC находится в каталоге C: \ Windows \ SysWOW64 \ ODBCAD32.exe. –

2

Я бы добавил еще один вариант в список Кена. Это связано с тем, что сервер выполняет запросы внешней базы данных (поэтому вы только настраиваете ODBC на сервере - вам не нужно иметь дело с ним на рабочих станциях). Вы создаете агента, запускаемого на сервере, используя технику «запустить на сервере». Когда рабочей станции необходимо запросить внешние данные, код создает в базе данных отбрасывающий документ, помещает критерии запроса во временный документ, сохраняет документ, а затем вызывает агент «запустить на сервере», передавая ссылку на временный документ документ. Сервер запускает агент, считывает критерии из временного документа, выполняет запрос и записывает результаты обратно во временный документ. Затем рабочая станция может получить доступ к результатам запроса из временного документа. Плановый агент может регулярно удалять временные документы.

Это звучит сложно, и все это нужно сделать в скрипте, но я сделал это во многих приложениях, и он быстрый, гибкий, простой в администрировании и дает вашим приложениям большую мощность. Обратите внимание, что конечные пользователи должны иметь права ACL для создания документа в db (temp doc), чтобы это работало.

Удачи вам!

+0

Если пользователь инициирует этот процесс, не будет ли dblookup уже выполняться к тому времени, когда агент выполнит получение и доставку результатов? Вы добавляете задержку, чтобы гарантировать, что информация записывается до того, как рабочая станция выполняет поиск? –