RTFM! статьи, советы, скрипты
::Заработок с помощью сайта ::JScript по-русски! ::Все русские мануалы::
МЕНЮ
О САЙТЕ
НОВОСТИ
СТАТЬИ
КНИГИ
АППЛЕТЫ
СВЯЗЬ

СЧЕТЧИКИ
Rambler's Top100
Рейтинг@Mail.ru
Яндекс цитирования

Не вебом единым жива MySQL

Автор: Sasha Volovod Сайт: http://www.nestor.minsk.by/kg     Рейтинг: N/A из 7       <<НАЗАД
   
   
   Система управления базами данных (СУБД) MySQL давно пользуется заслуженной популярностью в среде веб-программистов и в связке с PHP образует мощный инструмент, позволяющий решать самые сложные задачи, возникающие перед создателями сайтов. Однако оставим в покое веб-программирование, сегодня я хотел бы рассказать о том, как писать Windows-приложения, использующие эту СУБД.
   
   Перед началом разработки программы следует убедиться в наличии необходимого программного обеспечения (ПО). Во-первых, должна быть установлена сама СУБД. Я не буду подробно останавливаться на установке MySQL: этой теме не раз уделялось внимание на полосах КГ, скажу лишь, что дистрибутив ее можно получить с официального сайта разработчика 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 >, говорящая о готовности СУБД принимать команды пользователя. Выполним следующую последовательность команд:
   
   mysql > USE mybase;
   mysql > CREATE TABLE friends (name VARCHAR(25), phone VARCHAR(10), email VARCHAR(20)) ;
   mysql > INSERT INTO friends (name, phone, email) VALUES
   ('vasja', '232-43-65', 'vasja@tut.by'),
   ('sasha', '264-43-78', 'sasha@tut.by'),
   ('masha', '270-93-17', 'vasja@tut.by');
   
   Для того, чтобы увидеть плоды нашей работы, введем команду
   mysql > SELECT * FROM friends;
   
   Если вы созерцаете на экране монитора таблицу 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). Вводим текст программы:
   
   #include <stdio.h>
   #include <stdlib.h>
   #include <mysql.h>
   
   MYSQL mysql;
   MYSQL_RES *res;
   MYSQL_ROW row;
   
   int main()
   {
   int i = 0;
   
   if (!(mysql_connect(&mysql,"lo-calhost","",""))) {
   fprintf(stderr, "%s\n", mysql_ error(&mysql));
   exit(1);
   }
   
   if (mysql_select_db(&mysql,"myba- se")) {
   fprintf(stderr, "%s\n", mysql_ error(&mysql));
   exit(2);
   }
   
   if (mysql_query(&mysql,"SELECT * FROM freinds")) {
   fprintf(stderr, "%s\n", mysql_ error(&mysql));
   exit(3);
   }
   
   if (!(res = mysql_store_result (&mysql))) {
   fprintf(stderr, "%s\n", mysql_ error(&mysql));
   exit(4);
   }
   
   while((row = mysql_fetch_row (res))){
   for (i=0 ; i < mysql_num_fields (res); i++)
   printf("%s\t",row[i]);
   printf("\n");
   }
   
   if (!mysql_eof(res)) {
   fprintf(stderr, "%s\n", mysql_ error(&mysql));
   exit(5);
   }
   
   mysql_free_result(res);
   mysql_close(&mysql);
   }
   
   Перед сборкой проекта необходимо подключить библиотеку libmysql.lib. Для этого выбираем пункт меню Project — Settings и на вкладке Link в конец строки Oject/Library Modules добавляем libmysql.lib. Теперь можем смело жать F7 и запускать нашу программу на выполнение. На экран монитора должен вывестись список друзей с телефонами и адресами электронной почты, содержащийся в созданной нами ранее базе данных.
   Для начинающих программистов прокомментирую вышеприведенную программу. Чтобы установить соединение с СУБД, вызывается функция mysql_connect(). Она описана следующим образом:
   
   MYSQL *mysql_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd),
   где *mysql — указатель на структуру MYSQL;
   *host — указатель на строку, содержащую адрес компьютера в сети, на котором установлена СУБД (в нашем случае СУБД установлена на локальном компьютере);
   *user — указатель на строку, содержащую имя пользователя (если не задано, подразумевается текущий пользователь);
   *passwd — указатель на строку, содержащую пароль.
   
   Функция возвращает указатель на структуру MYSQL, если удалось установить соединение с базой данных, и NULL в противном случае. Тип ошибки можно получить, используя функцию mysql_error().
   Далее следует выбрать базу данных с помощью функции:
   
   int mysql_select_db(MYSQL *mysql, const char *db).
   
   *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 можно применять не только в Internet, но и в небольшой локальной сети или даже в одном компьютере, и для это необязательно использовать веб-интерфейс.
   В заключение хочется сказать, что автор не считает MySQL панацеей от всех бед и ни в коем разе не агитирует разработчиков ПО переключиться исключительно на ее использование. MySQL — это всего лишь СУБД, со своими достоинствами и недостатками. Выбор, как всегда, за вами.
   
   
   


<<НАЗАД      ОЦЕНИТЬ СТАТЬЮ    ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :  раз.




пейкюлю



 
 
 
 
 
pauk ©® 2000-2015. All rights reserved.
При перепечатке ссылка на сайт и указание обязательны.
Мнение администрации сайта не всегда совпадает с мнением автора.
Орфография и пунктуация - авторские.
Администрация не несет никакой ответственности за использование материалов.
.
Protected by Copyscape DMCA Takedown Notice Infringement Search Tool