Программирование >>  Создание клиентов mysql 

1 ... 106 107 108 [ 109 ] 110 111 112 ... 201


Клиентские функции 341

if(mysql query(smysql, query)) {

fprintf(stderr, Query failed: %s\n , mys ql e rro r(&mys ql));

else {

result = mysql store result(Smysql); /*

** Переход на пятнадцатую запись. */

raysql data seek(result,14);

row = mysql fetch row(result); /*

** Отображение названия штата. */

printf( %s\n , row[0]);

mysql free result(result); mysql close(Smysql);

mysql debug()

Эта функция включает режим отладки: voi bug (const char *debug)

Ей требуется передать строку формата наподобие d: t: 0 lient. trace либо пустую строку. Во втором случае используется переменная среды MYSQLDEBUG. Чтобы эта функция был тупна, необходимо скомпилировать клиентскую библиотеку с включением средств отладки.

В MySQL применяется библиотека функций отладки Фреда Фиша (Fred Fish). О ней рассказывается в главе 31, Расширение возможностейMySQL .

mysqljdrop db()

Эта устаревшая функция полностью удаляет указанную базу данных и все ее таблицы:

int raysql drop db(MYSQql, const char *db)

Вместо нее рекомендуется 1лать инструкцию DROP DATABASE с помощью функции

** Выборка записи.



mysql dump debugJnfo()

Эта функция заставляет сервер записывать отладочную информацию в журнальный файл:

int mysql dump debug infо (MYSQL *mysql)

mysql eof()

Эта устаревшая функция проверяет, достигнут ли конец результирующего набора записей:

my boo (MYSQL RES *res)

Вместо нее предпочтительнее пользоваться кцией mysql fetch row ().

mysql errno()

Эта функция возвращает код ошибки последней операции:

uint inysql errno (MYSQL *mysql)

Если ошибок не бтло, возвращается нуль. Список кодов ошибок и соответствующих им сообщений приведен в приложении Г, Коды ошибок MySQL . В листинге 15.5 будет выдано следующее сообщение:

Query failed: (1064) You have an error in your SQL syntax near FROM tax at line 1.

#include <stdio.h> #include <mysql/mysql.h>

in t argc, char *argv[]) {

MYSQL mysql; mysql init(Smysql);

mysql real connect(Smysql, localhost , freetrade , freetrade , 0, NULL, 0) ;

if(mysql query(smysql, SELECT FROM tax ))

fprintf(stderr, Query failed: (%d) %s\n ,

mysql errno(smysql), mysql error(Smysql));

mysql close(smysql);




Клиентские функции 343

mysql error()

Эта функция воз вращает об ошибке, соответствующее последней опе-

рации:

char ror{MYSQL *mysql)

Если ошибок o, возвращается пустая строка. Список кодов ошибок и соответствующих им сообщений приведен в приложении Г, Коды ошибок MySQL . Пример использования функции mysql error () приводился в листинге 15.5.

mysqIjescapejstringO

Эта устаревшая функция добавляет к заданной строке символы обратной косой черты, что позволяет использовать строку в SQL-инструкциях:

ulong mysql escape string{

char *to,

const char *froni, ulong length)

Эта функция игнорирует сведения о наборе символов. Вместо нее лучше пользоваться функцией mysql real escape string ().

mysqlJetchjfieldQ

Эта функция извлекает информацию о столбцах таблицы результатов, по одному зараз:

MYSQLFIELD * inysql f etch f ield (MYSQL RES * result)

В MySQL хранится внутренний указатель на текущий столбец. Этот указатель изменяется после каждой следующей операции выборки столбца. Когда столбцов не остается, возвращается NULL. Указатель сбрасывается в момент поступления нового запроса. Его можно также изменять вручную с помощью фyнкциипlysql field seek ().

Функция mysql fetch field() возвращает структуру MYSQLFIELD, описание которой было приведено выше. В режиме небуферизованного чтения размерность столбцов типа BLOB устанавливается равной 8 Кбайт, а не реальной размерности. Если же результаты запроса заносятся в буфер, учитывается размерность самого большого значения столбца.

В листинге 15.6 спомощью функции mysql fetch field() отображается информация о каждом столбце таблицы tax.

#include <stdio.h> #include <mysql/mysql.h>

int main(int argc, char *argv[]) {

MYSQL mysql;



1 ... 106 107 108 [ 109 ] 110 111 112 ... 201

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика