воскресенье, 27 ноября 2011 г.

Внедрение поддержки базы данных Firebird 2.5 в Visual Studio 2010

Поддержка Firebird для вашей студии может быть реализована двумя способами: руками или с помощью инсталятора. Инсталяторов не так много, предлагаю воспользоваться этим. Данный инсталятор разрабатывался и проверялся мной лично на Windows Xp и 7.
Для тех, кто привык делать всё руками ниже подробная инструкция.

Я расскажу по пунктам как реализовать в Visual Studio 2010 поддержку баз данных Firebird. В частности в любой редакции Visual Studio можно использовать Firebird, но в редакции Express есть ограничения, которые не позволяют использовать визуальный редактор. Поэтому в этой статье установка на Visual Studio 2010 Express рассматриваться не будет. Подразумевается что сервер базы данных Firebird уже установлен на ваш компьютер.

1. Заходим на сайт Firebird, заходим в раздел Download, выбираем NET Provider. Или можно просто перейти по этой ссылке.
1.1 Скачиваем архив NETProvider-2.6.5.zip
1.2 Скачиваем архив FirebirdDDEXProvider-2.0.5.zip

2. Распаковываем архивы
3. Необходимо установить сборки Firebird в GAC, причем в Windows 7 это сложнее чем в Windows XP.
2.1 В Windows XP нажимаем ПУСК-> Выполнить, вводим ASSEMBLY, нажимаем Enter. Перетаскаваем файлы в окно Assembly.
2.2 В Windows 7 открываем меню пуск в командное окно вводим CMD.
2.2.1 Вводим команду chdir "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools"


Если ваша ОС установлена на другой диск, скорректируйте путь.

2.2.2 Устанавливаем в GAC сборку FirebirdSql.Data.FirebirdClient.dll.
Для этого вводим команду gacutil -i "D:\VISUAL STUDIO PROJECTS\Firebird\NETProvider-2.6.5\FirebirdSql.Data.FirebirdClient.dll"


2.2.3 Устанавливаем в GAC сборку FirebirdSql.Data.FirebirdClient.dll.
Для этого вводим команду gacutil -i "D:\VISUAL STUDIO PROJECTS\Firebird\FirebirdDDEXProvider-2.0.5\FirebirdSql.VisualStudio.DataTools.dll"


2.2.4 Установка dll завершена.

3. Теперь нужно отредактировать файл machine.config, в моем случае он находится по пути: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

4. Открываем этот файл блокнотом

5. Находим секцию
<configuration>
  <configsections>

6. Добавляем строчку:
<section name="firebirdsql.data.firebirdclient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

7. Прокручиваем вниз до секции:
<system.data>
    <dbproviderfactories>

8. Добавляем в эту секцию строчку:
<add description=".Net Framework Data Provider for Firebird" invariant="FirebirdSql.Data.FirebirdClient" name="FirebirdClient Data Provider" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.6.5.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c">

9. Сохраняем файл. Всё это действительно для версии 2.6.5

10. Открываем файл D:\VISUAL STUDIO PROJECTS\Firebird\FirebirdDDEXProvider-2.0.5\reg_files\VS2010\FirebirdDDEXProvider64.reg блокнотом.

11. Находим строчку, которая содержит %path% и меняем его на полный путь к файлу  FirebirdSql.VisualStudio.DataTools.dll

"CodeBase"="D:\\VISUAL STUDIO PROJECTS\\Firebird\\FirebirdDDEXProvider-2.0.5\\FirebirdSql.VisualStudio.DataTools.dll"

12. Сохраняем этот файл, запускаем его. На запрос добавить информацию в реестр нажимаем ДА.

13. Установка завершена.

14. Запускаем Visual Studio.

15. Создаем новый проект Windows Forms.

16. Добавляем данные в проект.








Как видите всё работает. Осталось нажать ОК. И создастся типизированный набор данных для базы данных.

Работа далее ни чем не отличается от работы с любой другой базой данных.

11 комментариев:

  1. А почему FirebirdSql.Data.FirebirdClient.dll в ГАК может не добавляться? Я брал версию и 2.6.5 и 2.7.0. gacutil пишет,что сборка успешно добавлена, а в ГАКе она не высвечивается. И в результате, после внесения изменений в machine.config, после запуска VS2010 получаю вылет. Убираю внесенные записи из конфига - ВС стартует нормально.

    ОтветитьУдалить
  2. Какая у вас операционная система?

    В Windows XP установка сборок в GAC предельна проста. Нажимаете ПУСК - Выполнить, вводим команду assembly, нажимаем Enter. Откроется окно, если в него перетащить файл сборки, то она будет установлена в GAC. В Windows 7 это значительно сложнее и у меня это получилось только по инструкции выше.

    Кроме того если Windows 7 x32 то GAC находится в папке:
    C:\Windows\Microsoft.NET\assembly\GAC_32,
    если Windows 7 x64 то в папке:
    C:\Windows\Microsoft.NET\assembly\GAC_64,
    остальные сборки, которые не имеют жестких требований в разрядности находятся в папке:
    C:\Windows\Microsoft.NET\assembly\GAC_MSIL

    Попробуйте посмотреть в них.

    ОтветитьУдалить
    Ответы
    1. Сделал всё по инструкции, но есть проблемы. у меня XP.
      "Выполнить, вводим команду assembly, нажимаем Enter"
      Туда перетащить FirebirdSql.VisualStudio.DataTools.dll и FirebirdSql.Data.FirebirdClient.dll ?
      При перетягивании в асэмбли попадает только FirebirdSql.VisualStudio.DataTools.dll
      и Студия не запускается.
      из machine.config приходится удалять строчки чтобы запустилось

      Удалить
    2. Перетащить надо только FirebirdSql.Data.FirebirdClient.dll.
      Путь к FirebirdSql.VisualStudio.DataTools.dll участвует в реговском файлике, который добавляется в реестр.

      Как замучаетесь - попробуйте мой инсталятор.
      http://novaevalex.blogspot.ru/2012/09/firebird-ddex-provider-26-visual-studio.html

      Удалить
  3. Всё, получилось. Хитрость в том, что я не там сборку искал. Есть C:\Windows\assembly\, а есть C:\Windows\Microsoft.NET\assembly\. И клиент попадает во второй каталог, а DDEX в первый. Кстати gacutil -l показывает, что клиент в ГАКе.
    Почему вчера падала студия, я не понял, сегодня всё прокатило.

    ОтветитьУдалить
  4. Ах, да, забыл - операционка ХР.

    ОтветитьУдалить
  5. Здравствуйте, прикрепил это в студию. Спасибо. Тест коннект пройден. Но какое пространство имен и какой класс использовать для работы с БД?

    ОтветитьУдалить
    Ответы
    1. Добрый день! Я не так давно сделал установщик Firebird Tools для Visual Studio 2008/2010. Всю долгую и нудную ручную работу по регистрации сборок делает она сама. При удалении она отменяет их регистрацию.

      По теме: сборка называется "FirebirdSql.Data.FirebirdClient.dll".

      С Firebird можно работать 2мя способами: с помощью дизайнера данных или вручную. Для простых задач можно использовать вариант №1. Сложные проекты я рекомендую описывать вручную. Т.к. дизайнер данных не предоставляет всю мощь баз данных Firebird, т.к.они изначально не поддерживаются в Visual Studio.

      Работа вручную частично мной описана в статье:
      http://novaevalex.blogspot.com/2011/12/firebird-visual-studio-2010-select.html

      Удалить
    2. спасибо большое

      Удалить
  6. Подскажите, пожалуйста, почему может происходить следующее: устанавливаю все по инструкции, все добавляется, отображается в студии, но при добавлении нового подключения , при нажатии на ОК, выводится сообщение: "Не удалось найти запрошенного поставщика данных net framework. Возможно, он не установлен ". Net framework 4, студия 2010.
    Спасибо.

    ОтветитьУдалить
  7. Сделал все по инструкции, при добавление подключения открывается окно с настройкой подключения, после ввода одного буквально символа все вылетает

    ОтветитьУдалить