Delphi Seattle. FireDac. Введение и подключение к MySQL

Решил освоить для себя набор компонентов доступа к БД FireDac. Ранее работал с DBXpress, но время не стоит на месте, а FireDac оказался одним из лучших наборов компонент для доступа к БД. Но это мое личное мнение. Немного поискав информацию в сети, я понял, что лучшим ресурсом для изучения, как и всегда будет старая документация и новая, более полная документация. Она написана на английском языке, но, в принципе, для тех ,кто им владеет там все достаточно хорошо описано.Экспериментировать как и всегда я буду с БД MySQL так как на данный момент больше всего с ней знаком. В данном посте мы будем рассматривать один единственный вопрос.

Как подключиться к БД MySQL с помощью FireDAC?

2

Конкретно для этой БД в документации описан порядок подключения. Но есть один не очевидный нюанс из за которого я бился минут 40. Я подключался на windows машине и поэтому следовал след. информации из документации


Windows client software

FireDAC requires one of the following x86 or x64 libraries:

  • the LIBMYSQL.DLL client library for connecting to MySQL server. Ideally, the version should be equal to the server version.
  • the LIBMYSQLD.DLL embedded server library. See “MySQL Embedded server” chapter below.

You can take them from a server (details) installation Bin or Lib folders and put into a folder:

  • listed in your PATH environment variable (for example, <Windows>\SYSTEM32);
  • your application EXE folder;
  • any other folder and specify in FireDAC\DB\ADDrivers.ini:

Итак, нам нужен драйвер LIBMYSQL.DLL, чтобы подсоединиться к нашей БД. Если драйвера нет или он не той битности, то мы получим следующее сообщение об ошибке

1

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

-Изменить переменную окружения, добавив туда файл с библиотекой

-Добавить библиотеку в папку с EXE

-Прописать изменения в FireDAC\DB\ADDrivers.ini


Почему-то не работало

У меня сработали все три способа (как ни странно), но почему-то не работало, если

-положить файл в C:\WINDOWS\System32

-прописать в FireDAC\DB\ADDrivers.ini секцию

Под срабатыванием я подразумеваю успешное подключение к БД

Как сделать, чтобы работало?

Работало, если положить файл в любую другую папку, например C:\MySQLDriver

-если добавить в переменную окружения C:\MySQLDriver

-либо в файл ADDrivers.ini добавить секцию

 Где найти файл ADDrivers.ini ?

Первый способ (через реестр)

HKCU\Software\Embarcadero\FireDAC\DriverFile

После открытия файла DriverFile, у меня высветилась информация $(FDHOME)\FDDrivers.ini

Второй способ (напрямую)

Какой драйвер использовать?

В принципе, насколько я понимаю, нужно использовать драйвер, согласно битности, у меня, например 64 битная windows, но тот файл LIBMYSQL.DLL, который был установлен вместе с MySQL почему-то отказывался работать. Находился он по адресу

Я его клал в С:\MySQLDriver, но все равно он отказывался работать. Выскакивала та же ошибка. Немного порывшись в сети я нашел другую версию библиотеки, с которой у меня все прекрасно заработало. Выкладываю её здесь, может кому-то понадобится.


Скачать файл libmysql.rar


Финальный алгоритм – как подключиться к MySQL при помощи FireDAC?

(алгоритм для дизайн тайм)

-Скачать подходящий драйвер LIBMYSQL.DLL можно по ссылке выше, либо с официального сайта

-Разместить его в любой папке, например C:\MySQLDriver

-Добавить в переменную окружения путь C:\MySQLDriver либо дописать  секцию в файле ADDrivers.ini 

-Разместить на форме проекта компонент FDConnection и 2 раза кликнуть на нём

-В поле Driver ID выбрать MySQL

-Заполнить прочие реквизиты подключения (Имя БД, логин, пароль, сервер – в моем случае был LOCAL, порт – по умолчанию 3306)

Как изменить переменную окружения?

Tools | Options | Enviroment Options | Enviroment Variables | Найти Path  –> Далее Add Overwrite, добавить точку с запятой и путь, например C:\MySQLDriver

Как сохранить параметры подключения в IDE DELPHI Seattle?

В принципе, если мы будем работать с Design Time, то параметры подключения мы можем сохранить через

View | Data Explorer | FireDac | MySQL Server | Правой  кнопкой мыши –> Add New Connection

Далее заполнение тех же параметров, что и в финальном алгоритме выше, только теперь, при создании нового подключения мы можем ссылаться на созданное через свойство ConnectionDefName

Итог подключения к БД MySQL при помощи FireDAC

2

This entry was posted in FireDAC, Без рубрики. Bookmark the permalink.