ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

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

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Все о MySQL. MySQL and C


28-12-2009

Для облегчения построения клиентских приложений MySQL, компания MySQL AB предоставляет C API-интерфейс, который расширяет возможности низкоуровневого ин­терфейса на большинство задач, затрагивающих взаимодействие с сервером SQL: подклю­чение к базе данных, выполнение запроса, обработка результирующего набора и обработка ошибок. Этот C API-интерфейс реализован с помощью следующих двух компонентов:
■ файл заголовка mysql.h, содержащий объявления структур и функций;
■ библиотека MySQL, libmysqlclient (для UNIX) или mysqlclient.lib (для Windows), которая, собственно, и содержит C-функции.

Особый подход
Создание клиентов MySQL, работающих под управлением ОС Windows, подразумевает еще несколько дополнительных этапов. Более подробная информация о проблемах построения приложений под управлением ОС Windows, представлена по адресу http//www.mysql.com/doc/en/Windows_client_compiling.html.
При необходимости компилировать клиенты MySQL на платформе Windows, потребуется и третий компонент:
■ файл заголовка my_global.h, содержащий дополнительные определения, необходимые для Windows.
Все эти файлы включены в стандартный архив с исходными текстами MySQL или двоичными файлами, а также с двоичными RPM-файлами MySQL.
■ При использовании архивов (если MySQL устанавливается в /usr/local/ mysql), C-библиотеку для MySQL можно найти в каталоге /usr/local/mysql/ lib, а файл заголовка - в /usr/local/mysql/include.
■ При инсталляции MySQL из RPM-файлов, библиотека должна находиться в каталоге /usr/lib/mysql/, а файл заголовка - в /usr/include/mysql/.
Для компилятора C расположение этих файлов задается с помощью параметров -L и -I, а для редактора связей - местоположение библиотеки MySQL указывается параметром -lmysqlclient.
Обучение на примерах
Большая часть исходного дистрибутива MySQL написана на ЯП C, и его исходные тексты можно получить бесплатно. Посмотрите в подкаталог client/ исходного дистрибутива MySQL, в котором содержится исходный код таких утилит MySQL, как mysqldump, mysqlimport и клиентской программы mysql.
Наилучший способ освоения MySQL C API - это написать простенькую клиентскую программу, откомпилировать ее и запустить на выполнение. Откройте свой любимый текстовый редактор и введите следующий исходный текст.
Листинг 19.2.
#include <stdio.h> #include <mysql.h> int main () 
{
/* объявление структур и переменных */ MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row;
/* инициализация структуры MYSQL */
mysql_init(&mysql);
/* подключение к базе данных */
mysql_real_connect(&mysql, "localhost", "john", "doe", "db1", 0, NULL, 0);
/* выполнение запроса */
mysql_query(&mysql, "SELECT title, author FROM books"); /* получение результирующего набора */ result = mysql_store_result(&mysql); /* обработка результирующего набора */ while((row = mysql_fetch_row(result)))
{
fprintf (stdout, "%s - %sn", row[0], row[1]);
}
/* очистка */
mysql_free_result(result); mysql_close(&mysql);
}
После того как весь текст будет введен, сохраните это в файле (назовем его sam-ple.c) и откомпилируйте его.
Листинг 19.3.
[user@host]$ /usr/bin/gcc sample.c -o sample.bin -
I/usr/local/mysql/include
-L/usr/local/mysql/lib -lmysqlclient -lz
Параметр -lmysqlclient сообщает редактору связей о необходимости использования в своей работе библиотеки libmysqlclient, а параметры -I и -L сообщают компилятору, где искать файлы заголовков MySQL и библиотеки. Параметр -o сообщает, какое имя файла будет присвоено самой исполняемой программе. При отсутствии этого аргумента, GCC по умолчанию присваивает имя a.out.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. MySQL и язык С Все о MySQL. MySQL and C. Новые возможности