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

1 ... 104 105 106 [ 107 ] 108 109 110 ... 201


Типы данных 335

FIELD TYPE TINY FIELD TYPE TINY BLOB FIELD TYPE VAR STRING FIELD TYPE YEAR

MYSQL FIELD OFFSET

В этой структуре хранится номер поля записи. Нумерация полей начинается с нуля.

MYSQL RES

Эта структура описывает таблицу результатов запроса (табл. 15.5).

Поле

my ulonglong row count unsigned int field count unsigned int current lcl MYSQL FIELD Ids MYSQL DATA *data MYSQL ROWS *data cursor MEM ROOT field alloc MYSQL ROW row

MYSQL ROW currentrow unsigned long *lengths MYSQL *handle

Хранимая информация

Число строк в таблице результатов Число столбцов в таблице результатов Внутренний указатель на столбец Массив с информацией о столбцах Массив записей Указатель текущей записи Резидентный буфер

Описание текущей записи в случае режима не-буферизованного чтения

Запись, находящаяся в буфере

Массив длин текущих столбцов

Дескриптор сеанса для режима небуферизо-ванного чтения

ту bool eof

Маркер для etch row



MYSQL ROW

В этой структуре хранится содержимое одной записи таблицы.

MYSQLROWS

Эта структура описывает набор записей.

my ulonglong

Эт рядное целое число, используемое для подсчета количества записей, а также в качестве значения поля-счетчика. Оно определено как unsigned long long my ulonglong.

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

В этом разделе описаны функции, используемые для взаимодействия с базой данных.

mysql affectedjrows()

Эта функция определяет количество строк, участвовавших в последнем запросе указанного сеанса. Ее прототип таков:

my ulonglong mysql af fected rows (MYSQL *mysql)

Для операций обновления (UPDATE), удаления (DELETE) и вставки (INSERT) возвращается число измененных строк. Для операций выборки (SELECT) возвращается число строк в таблице результатов запроса.

В листинге демонстрируются обновление нескольких записей и последующая проверка их числа с помощью функции l affected rows ().

Листинг 15.1. Функция niY9f3Llj e€ected

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

int main(in gc, char *argv[]) {

MYSQL mysql;

char *querY = UPDATE book SET title=UPPER(title) ; mysql init(&mysql);

if(!mysql real connect(Smysql,

localhost , leon ,




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

test , О, NULL, 0) )

fprintf(stderr,

Failed to connect to database. Error: %s\n , mysql error(Smysql));

exit {) ;

Обновление нескольких записей.

if(mysql query(imysql, query))

fprintf(stderr, Query failed: %s\n , mysql error(Smysql));

else

printf( %d titles changed. ,

mysql affected rows(Smysql));

I

Закрытие соединения.

mysql close(Smysql);

mYsql chaTige VLser()

Эта функция меняет пользователя и базу данных текущего сеанса. В случае успешного завершения возвращается нуль, иначе - код ошибки (перечислены далее в табл. 15.8). Прототип функции таков:

ту bool mysql change user( MYSQL *mysql, const char *user, const char *passwd, const char *db)

Аргумент sql - это описание соединения, возвращаемое функцией mysql realconnect (). Значения аргументов user и password должны соответствовать реальному имени пользователя и паролю в таблицах привилегий. Последний аргумент является необязательным.

В листинге 15.2 функция mysql change user (), не разрывая соединение с сервером, отменяет какую-либо ассоциацию с пользователем или базой данных.




1 ... 104 105 106 [ 107 ] 108 109 110 ... 201

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