Pull to refresh

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'
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.
Change theme settings