|
Программирование >> Создание клиентов mysql
Типы данных 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 (), не разрывая соединение с сервером, отменяет какую-либо ассоциацию с пользователем или базой данных.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |