Подключение к Microsoft SQL Server из отчетов BIRT теоретически должно выглядеть так же, как и подключение к PostgreSQL, за исключением другого файла драйвера и другой строки подключения. Но реальность, как иногда бывает, оказывается сложнее ожиданий.

Во-первых, драйверов в формате JDBC для подключения к SQL Server много:

  • драйверы от Microsoft (mssql-jdbc-<версия>.jar), которые качаются с Microsoft;
  • драйверы проекта JTDS (jtds-<версия>.jar), общие для подключения к SQL Server и Sybase. Скачиваются с http://jtds.sourceforge.net/;
  • драйверы sqljdbc (sqljdbc-<версия>.jar), которые живут в репозитарии Maven и которые можно считать приложением к Eclipse.

Для применения аутентификации Windows при подключении к SQL Server драйверы Microsoft требуют еще файл sqljdbc_auth.dll, который должен быть помещен в папку, доступную по PATH, например, C:\Windows\System32, а драйвер JTDS — размещения в такой же папке файла ntlmauth.dll. В общем, все непросто, и форумы полны вопросов, как заставить тот или иной драйвер работать.

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

Первое, что нужно сделать — скачать из репозитария Maven драйвер sqljdbc. Например, это можно сделать со страницы

https://mvnrepository.com/artifact/com.microsoft.sqlserver/sqljdbc4/4.0

Скачанный файл sqljdbc4-4.0.jar для порядка поместим в какую-нибудь папку. В моем случае это будет папка D:\BIRT\SQLServerJdbcDriver.

Дальше все делается так же, как и при создании источника данных для PostgreSQL:

  1. В окне Data Explorer запускаем создание нового источника данных (см. рис. 3.3.4-1):

Рис. 3.3.4.1 Начало создания источника данных для подключения к SQL Server в отчете BIRT

2. На первом экране мастера оставляем переключатель в положении Create from a data source type, выбираем JDBC Database Connection for Query Builder и в поле Data Source Name прописываем имя создаваемого источника данных (в моем случае —SQLServerDevHR01 — см. рис. 3.3.4.2). Мимоходом заметим, что если вам потребуется подключиться из отчета к хранимой процедуре на SQL Server, тип подключения JDBC Database Connection for Query Builder не подойдет: нужно будет использовать JDBC Data Source.

Рис. 3.3.4.2 Выбор типа источника данных для подключения к SQL Server

3. На следующем экране выбираем SQL Server (см. рис. 3.3.4.3)

Рис. 3.3.4-3 Выбор профиля подключения для SQL Server в отчете BIRT

4. На следующем экране нажимаем на кнопку New Driver Definition (см. рис. 3.3.4-4)

Рис. 3.3.4-4 Создание нового определения драйвера для подключения к SQL Server в отчете BIRT

5. В открывшемся окне на вкладке Name/Type выбираем драйвер Microsoft SQL Server 2008 JDBC Driver (см. рис. 3.3.4-5).

Внимание! Этот тип драйвера нужно использовать и для подключения к SQL Server 2012, и SQL Server 2014, и SQL Server 2016. Если вы выберете более логичный тип драйвера Microsoft SQL Server 2012 JDBC Driver или Microsoft SQL Server 2014 JDBC Driver, ничего работать не будет.

Можно заодно в поле Driver Name ввести другое название для драйвера, более подходящее.

Рис. 3.3.4.5 Выбор шаблона драйвера для подключения к SQL Server

6. На вкладке JAR List (см. рис. 3.3.4.6) удалите при помощи кнопки Remove JAR/Zip предлагаемый по умолчанию драйвер и при помощи кнопки Add JAR/Zip добавьте свежескачанный с репозитария Maven файл sqljdbc4-4.0.jar.

Рис. 3.3.4.7 Выбор JAR-файла при создании определения драйвера SQL Server в BIRT

7. На вкладке Properties (см. рис. 3.3.4.8) настройте параметры подключения.

Рис. 3.3.4.8 Настройка определения драйвера для подключения SQL Server в отчете BIRT

  • Connection URL — это строка подключения по JDBC. В нашем примере она выглядит как jdbc:sqlserver://SQLServerDev01:1433;databaseName=HR01, где SQLServerDev01 — это имя сервера, где работает SQL Server (оно должно разрешаться в IP-адрес), 1433 — порт, на котором работает SQL Server, HR01 — наименование базы данных, к которой мы подключаемся;

  • Database Name — еще раз дублируем наименовании базы данных;

  • Driver Class — наименование класса драйвера, лучше оставить значение по умолчанию;

  • User ID и Password — как понятно из названия, это имя пользователя и пароль для подключения к SQL Server. Сейчас мы настраиваем параметры для подключения с типом аутентификации SQL Server, но скоро мастер предложит нам выбрать тип аутентификации (и можно будет выбрать аутентификацию Windows).

8. Нажимаем на кнопку ОК и возвращаемся в окно Specify a Driver and Connection Details, которое теперь выглядит совсем по другому (см. рис. 3.3.4.9).

Рис. 3.3.4.9 Итоговое окно настройки свойств Data Source для подключения к SQL Server в BIRT

Обратим внимание:

  • на флажок Use integrated authentification (Использовать интегрированную аутентификацию), то есть аутентификацию Windows, которая используется для SQL Server во многих организациях;
  • на флажок Save password (Сохранить пароль). Если у пользователей нет пароля для подключения к SQL Server (а отчет им нужен), придется его использовать;
  • на кнопку Test Connection (Проверить подключение). Рекомендуется нажать на нее и убедиться, что выдается сообщение Ping Succeded.

В общем, главное при настройке подключения — скачать правильный драйвер JDBC и подходящий к нему тип драйвера BIRT. Вариант sqljdbc4-4.0.jar с Maven плюс тип драйвера Microsoft SQL Server 2008 JDBC Driver отлично работает и для подключений к SQL Server 2012, и к SQL Server 2016.

Перейти к следующему разделу