Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql




Скачать 46.27 Kb.
НазваниеЛекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql
Дата публикации01.10.2013
Размер46.27 Kb.
ТипЛекція
uchebilka.ru > Информатика > Лекція
Лекція 9. Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини СУБД MySQL
Перед началом разработки программы следует убедиться в наличии необходимого программного обеспечения (ПО). Во-первых, должна быть установлена сама СУБД. Я не буду подробно останавливаться на установке 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

#include

#include
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 — это всего лишь СУБД, со своими достоинствами и недостатками.

Добавить документ в свой блог или на сайт

Похожие:

Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql iconРекомендации по выбору механизмов доступа приложений баз данных на...

Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql iconЛабораторная работа №9-11 Тема
Тема: Создание в программе CodeGear rad studio (C++Builder) клиентского приложения по технологии dbExpress для клиент-серверной субд...

Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql iconЛабораторная работа №7-9 Тема
Тема: Создание в программе CodeGear rad studio (C++Builder) клиентского приложения по технологии dbExpress для клиент-серверной субд...

Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql icon1. Первый запуск ms visual C++
В меню «Пуск» – «Все программы» находим раздел Microsoft Visual Studio 2010 Express и запускаем программу Microsoft Visual Studio...

Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql iconБазовая информация об образовании
Среды разработчика: Borland Delphi 5-7(bde, ado, Fast Report), Microsoft Visual Studio 2005(немного)

Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql iconЛекція 5 "Інформатика та комп'ютерна техніка" Тема Операційна система...
Рабочий стол – область экрана, на котором расположены актуальные инструменты (объекты) – папки (каталоги), файлы и ярлыки

Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql iconЛекція 5 "Інформатика та комп'ютерна техніка" Тема Операційна система...
Рабочий стол – область экрана, на котором расположены актуальные инструменты (объекты) – папки (каталоги), файлы и ярлыки

Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql iconМотивация Описание организации
Субд ms sql 2000 Требования к рабочей станции: Операционная система Windows 98 и выше Язык реализации ms visual C++, ms visual Basic...

Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql iconПредлагаемый курс «Базы данных на основе Microsoft sql server 2008»...
«Базы данных на основе Microsoft sql server 2008» позволяет изучить теоретические основы баз данных (БД), сформировать умения и навыки...

Лекція Механізми доступу додатків С++ до баз даних. Створення у середовищі Borland С++ Builder (Microsoft Visual Studio 2008) клієнтської частини субд mysql iconИнструмент разработчика — ms visual Studio. Net
Поэтому, продвигая платформу. Net, компания Microsoft предлагает также инструментарий для программистов — Visual Studio. Net и систему...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<