Как стать автором
Обновить

MySQL+dbExpress

MySQL5+dbExpress под Delphi без использования ODBC

Очень мало в интернете информации, о том как подключиться к серверу MySQL в программах написанных на Delphi. Большинство обсуждений, которые мне встретились, сводятся к тому, что бы оставить эту затею или же использовать в первом случае — драйвер ODBC, во втором — сомнительные по удобству компоненты собственной разработки.

Вариант с ODBC неприемлем нам в том случае, если мы собираемся ставить программу на N-ое количество машин, поскольку ODBC требует отдельной регистрации в каждой операционной системе.
Вариант с нестандартными компонентами неудобен(в виду непривычки) при написании большого количества кода, весьма сомнителен в стабильности, а так же либо ограничивает нас в возможностях, либо вынуждает разбирать и дописывать компоненты.
Изучая альтернативы, перекапывая десятки форумов и наступая на грабли по мере разработки своего проекта я сформировал представление о пригодных в такой ситуации компонентах и библиотеках. Поскольку во время поисков я не встретил ни одной статьи, которая помогла бы мне безболезненно собрать связку Delphi-MySQL и сразу приступить к коду, то я написал такую подсказку сам.
Для проекта я использовал:
1) Сервер MySQL версии 5.0.67 (utf8)
2) Среда разработки Delphi 2007
3) Компоненты для оперирования данными — dbExpress
Следующие библиотеки мне потребовалось найти и разместить в доступных операционной системе папках(это каталоги как «windows\system32», «Program Files\CodeGear\RAD Studio\5.0\bin», а так же каталог с исполняемым файлом нашей программы. Рекомендую на стадии разработки и альфатеста использовать третий вариант, он позволяет более наглядно оценить недостающие элементы):
1) libMySQL.dll — Это библиотека нужна для связи вашей программы с сервером MySQL, ищем в интернете. Наиболее актуальная для вас версия будет лежат в папке с установленным MySQL сервером. Наибольшая вероятность непонятных ошибок именно из-за неверной библиотеки libMySQL.dll! Если возникают проблемы попробуйте заменить ее другой версией.
2) dbxmys30.dll (версия 11.0) — Библиотека драйвера, обычно присутствует в «Program Files\CodeGear\RAD Studio\5.0\bin» на компьютере разработчика.
Так же вместо второго пункта в папке с программой можно расположить dbxopenmysql50.dll, скачанную с www.justsoftwaresolutions.co.uk/delphi/dbexpress_and_mysql_5.html (сразу качаем и Source code, и Compiled DLL, там же инструкция по настройке TSQLConnection).
Так же в папке с программой нужно разместить два файлика:
1) dbxdrivers.ini
2) dbxconnections.ini
В случае с dbxmys30.dll они берутся из папки «C:\Documents and Settings\All Users\Документы\RAD Studio\dbExpress»
В случае с dbxopenmysql50.dll их следует взять из архива с Source code, уже скачанного нами с озвученного ранее сайта.
Для большинства разработчиков этого будет достаточно для начала работы, и дальше читать им нет нужды. Подсказка для менее опытных:
Настройки компонента TSQLConnection в случае с
dbxopenmysql50.dll:
Берутся с того же сайта. От себя добавлю только, что для моей кодировки utf8 мне потребовалось добавить параметр — MyConnection.Params.add('ServerCharSet=utf8'); То же и в случае с dbxmys30.dll.
dbxmys30.dll — мои настройки:
ConnectionName = 'MySQLConnection'
DriverName = 'MySQL'
GetDriverFunc = 'getSQLDriverMYSQL'
LibraryName = 'dbxmys30.dll'
LoginPrompt = False
VendorLib = 'libmysql.dll'
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.