CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Не вебом единым…

Александр ВОЛОВОД udly@tut.by

СУБД (cистема управления базами данных) MySQL давно пользуется заслуженной популярностью в среде web-программистов. В связке с PHP она образует мощный инструмент, позволяющий решать самые сложные задачи, возникающие перед создателями сайтов. Причин популярности MySQL довольно много, но наиболее значимыми, на мой взгляд, являются бесплатность, доступ к исходным текстам СУБД, высокая скорость работы. Сегодня я хотел бы рассказать о том, как писать Windows-приложения, использующие эту СУБД.

Зачем мне это нужно? Ответ на этот вопрос очевиден для тех, кто пытался перенести данные из одной базы данных в другую, скажем, из MS Access в MySQL. Такая задача довольно часто возникает, когда требуется разместить базу данных в Интернете и не удается найти нужный хостинг, либо он слишком дорог. Конечно, этой проблемы можно было бы избежать, если бы с самого начала использовать MySQL, но командная строка отпугивает пользователей, живущих в «мелко-мягких» окошках. А кто мешает нам написать интерфейс а-ля MS Access? За дело!

Перед началом разработки программы следует убедиться в наличии необходимого ПО. Во-первых, должна быть установлена сама СУБД. Я не буду подробно останавливаться на установке MySQL — этой теме не раз уделялось внимание на полосах МК, скажу лишь, что дистрибутив ее можно получить с официального сайта разработчика http://www.mysql.com. Распространяется MySQL в соответствии с лицензией GPL (бесплатно для некоммерческого использования). Во-вторых, нам понадобится компилятор языка программирования. Быть может, Visual C++ 6.0 — не самое лучшее средство для работы с базами данных, но мой выбор пал именно на него. Об остальном ПО, которое потребуется, я расскажу по ходу дела.

В своих дальнейших рассуждениях я буду исходить из того, что MySQL установлена по умолчанию в папку C:\mysql\, а Visual C++ , опять же по умолчанию, — в C:\Program Files\Microsoft Visual Studio\Vc98\.

Создадим базу данных. Для этого необходимо перейти в каталог c:\mysql\bin\ и выполнить команду mysqladmin create mybase , где mybase — имя создаваемой базы данных. Если возникнут ошибки, проверьте, запущен ли сервер базы данных (mysqld.exe). Следующий шаг — запуск mysql.exe; на экране должна появиться подсказка mysql >, сообщающая о готовности СУБД принимать команды пользователя. Выполним следующую последовательность команд:

Чтобы порадоваться плодам нашей работы, введем команду:

Если вы созерцаете на экране монитора таблицу friends и три строки с данными, то можете со спокойной душей набирать quit — создание базы данных успешно завершено.

Чтобы получить доступ к базе данных из Си-программы, можно использовать либо функции MySQL API, либо ODBC-драйвер. Рассмотрим первый вариант.

Скопируем файлы, находящиеся в каталоге C:\mysql\include\, в каталог C:\Program Files\Microsoft Visual Studio\Vc98\Include. Далее копируем файл C:\mysql\lib\opt\libMySQL.dll в системный каталог (для Windows 9x по умолчанию это каталог с:\windows\system\), а оставшиеся файлы из каталога C:\mysql\lib\opt\ — в C:\Program Files\Microsoft Visual Studio\Vc98\Lib.

После того как все приготовления проведены, запускаем Visual C++ и создаем консольное приложение (Win32 Console Application). Вводим текст программы:

Перед сборкой проекта необходимо подключить библиотеку libmysql.lib; для этого выбираем пункт меню Project > Settings, на вкладке Link в конец строки Oject/Library Modules добавляем libmysql.lib. Теперь можем смело жать F7 и запускать на выполнение нашу программу. На экран монитора должен вывестись список друзей с телефонами и адресами электронной почты, содержащийся в созданной нами ранее базе данных.

Для начинающих программистов прокомментирую программу. Чтобы установить соединение с СУБД, вызывается функция mysql_connect(). Она описана следующим образом:

где:

*mysql — указатель на структуру MYSQL;

*host — указатель на строку, содержащую адрес компьютера в сети, на котором установлена СУБД (в нашем случае СУБД установлена на локальном компьютере);

*user — указатель на строку, содержащую имя пользователя (если не задано, подразумевается текущий пользователь);

*passwd — указатель на строку, содержащую пароль.

Функция возвращает указатель на структуру MYSQL, если удалось установить соединение с базой данных, и NULL — в противном случае. Тип ошибки можно получить, используя функцию mysql_error().

Далее следует выбрать базу данных с помощью функции

*mysql здесь — указатель, полученный функцией mysql_connect(), а *db — указатель на строку с именем базы данных.

После того как база данных выбрана, можно посылать SQL-запрос на выборку данных, для чего применяется функция int mysql_query (MYSQL *mysql, const char *query), где *query — указатель на строку, содержащую запрос. В случае успешного выполнения операции функция возвращает 0.

Затем вызываем функцию MYSQL_RES *mysql_store_result (MYSQL *mysql), которая передает результат запроса клиенту, в случае успеха возвращает указатель на структуру MYSQL_RES, а если произошла ошибка или данных для выборки нет — NULL. Когда полученные данные больше не нужны, требуется освободить занимаемую память вызовом функции void mysql_free_result (MYSQL_RES *result).

Для получения строки данных из результата запроса применяем функцию MYSQL_ROW mysql_fetch_row(MYSQL_RES *mysql). Функция вернет NULL, когда строки закончатся. Количество полей в строке получаем функцией int mysql_num_fields (MYSQL_RES *result). Функция int mysql_eof (MYSQL_RES *) вернет ненулевое значение, если достигнут конец набора результатов.

После окончания работы с базой данных вызовом функции mysql_close (MYSQL *mysql) закрываем соединение с СУБД.

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

Если помните, в начале статьи я сказал, что работать с базой данных можно, используя ODBC-драйвер. Что же такое ODBC?

Open Database Connectivity (ODBC) —открытый интерфейс доступа к базам данных, позволяющий приложению обращаться к различным СУБД с помощью структурированного языка запросов SQL. Применение ODBC позволяет программисту писать приложения, не зависящие от архитектуры конкретной СУБД. Будь то MySQL, MS Access или Oracle — для разработчика это не имеет принципиального значения, ведь работа с ними ведется совершенно одинаково.

Для того чтобы написать приложение для работы с СУБД MySQL через ODBC, необходимо установить MyODBC-драйвер, получить который можно найти на странице http://www.mysql.com/downloads/api-myodbc.html, где следует искать желательно последнюю версию для Windows. Для тех, кому лень это делать, привожу прямую ссылку на мой сайт: http://www.bizkit.nm.ru/man/download/myodbc.exe.

После установки данного драйвера необходимо создать источник данных. Идем в Панель управления, выбираем Источники данных ODBC, и перед нами открывается окно Администратор источников данных ODBC. Нажимаем кнопку Добавить, и в окне Создание нового источника данных выбираем MySQL ODBC 3.51 Driver (номер версии драйвера может отличаться). В следующем окне введите имя источника данных (Data Source Name). Заполнение оставшихся полей не должно вызвать затруднений у человека, который хоть раз в жизни настраивал СУБД, поэтому приводить описание этих действий не считаю необходимым. Нажатием кнопки Test Data Source проверяем доступность источника данных, и если все в порядке, можем приступать к написанию кода программы.

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

Таким образом СУБД MySQL можно применять не только в Интернете, но и в небольшой локальной сети или даже одном компьютере, причем для этого необязательно использовать web-интерфейс.

В заключение хочется сказать, что автор не считает MySQL панацей от всех бед и ни в коем разе не агитирует разработчиков ПО переключиться исключительно на ее использование. MySQL — это всего лишь СУБД, со своими достоинствами и недостатками. Выбор как всегда за вами.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov