Delphi - сбориник статей

       

Доступ к базе данных


После того, как мы инициализировали сессию связи с Lotus Notes, мы можем обращаться к любым серверам Lotus Domino и базам данных на них. Принципиально получить доступ к БД Lotus Notes можно 2 способами – либо обратиться к текущей базе данных, открытой в Lotus Notes, либо вызвать соответствующий метод NotesSession и открыть любую другую БД []. Последний случая является наиболее востребованным, поэтому рассмотрим его:

procedure TMyButtomClick(Sender: TObject); var MyServer: string; begin // Необходимо вычислить имя сервера, // на котором находится необходимая нам БД MyServer:=... // Теперь открываем БД – например, откроем адресную книгу сервера MyLNDataBase:=MySession.GetDataBase(MyServer, ‘names.nsf’); end;

Мы в своей работе используем реестр Windows, в котором храним имя сервера Domino по умолчанию, к которому подключаются приложения. Для упрощения разработки и администрирования программ мы использую функцию GetDefaultServerName, которая работает по следующему алгоритму:

  1. При вызове функции она проверяет наличие определенного ключа в реестре Windows.
  2. Если этот ключ отсутствует или он содержит пустое значение, функция обращается к файлу notes.ini и считывает из него значение параметра почтового сервера Notes. Имя сервера записывается как значение ключа Windows
  3. Если ключ в реестре Windows имеется и не содержит пустое значение, функция считывает его и возвращает в качестве ответа.

Таким образом, при первом старте приложения оно самостоятельно выполняет настройку реестра Windows на подключение к текущему серверу Domino. Если в дальнейшем требуется перенаправить работу приложения на другой сервер, то либо пользователь при помощи встроенных в приложение визуальных средств, либо администратор сети вручную меняют значение ключа. Т.о. со следующего запуска начинает обращаться к другому серверу – обеспечивает поддержка мультисерверной конфигурации информационной системы.



Содержание раздела