Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / MySQL / Интерфейсы для MySQL /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Интерфейс C для MySQL (окончание) - Программирование от RIN.RU
Интерфейс C для MySQL (окончание)

mysql_init()


MYSQL *mysql_init(MYSQL *mysql)


Описание


Выделяет или инициализирует объект MYSQL, подходящий для функции mysql_real_connect(). Если аргумент mysql представляет собой указатель NULL, то эта функция выделяет, инициализирует и возвращает новый объект. В противном случае инициализируется указанный объект и возвращается его адрес. Если функция mysql_init() выделяет новый объект, то он будет освобожден при вызове функции mysql_close(), чтобы закрыть данное соединение.


Возвращаемые значения


Инициализированный дескриптор MYSQL. NULL при недостатке памяти для выделения нового объекта.


Ошибки


В случае нехватки памяти возвращается NULL.


mysql_insert_id()


my_ulonglong mysql_insert_id(MYSQL *mysql)


Описание


Возвращает идентификатор ID, сгенерированный для столбца AUTO_INCREMENT предыдущим запросом. Эту функцию следует использовать после выполнения запроса INSERT в таблице, содержащей поле AUTO_INCREMENT.


Следует учитывать, что функция mysql_insert_id() возвращает 0, если предыдущий запрос не сформировал величину AUTO_INCREMENT. Если необходимо сохранить эту величину в дальнейшем, то следует позаботиться о вызове функции mysql_insert_id() немедленно после запроса, который создает указанную величину.


Функция mysql_insert_id() обновляется после команд INSERT и UPDATE, которые генерируют величину AUTO_INCREMENT или устанавливают величину столбца в значение LAST_INSERT_ID(expr). См. раздел Разные функции.


Следует также иметь в виду, что величина SQL-функции LAST_INSERT_ID() всегда содержит самое последнее сгенерированное значение AUTO_INCREMENT и не обновляется между запросами, так как величина этой функции сохраняется
сервером.


Возвращаемые значения


Величина поля AUTO_INCREMENT, обновленного предыдущим запросом. Возвращает нуль, если перед этим не было запроса в данном соединении или если данный запрос не обновил величину AUTO_INCREMENT.


Ошибки


Нет.


mysql_kill()


int mysql_kill(MYSQL *mysql, unsigned long pid)


Описание


Предписывает серверу уничтожить поток, указанный в аргументе pid.


Возвращаемые значения


Нуль при успешном выполнении. Отличная от нуля величина при ошибке.


Ошибки


CR_COMMANDS_OUT_OF_SYNC

Команды были выполнены в ненадлежащем порядке.

CR_SERVER_GONE_ERROR

Сервер MySQL неожиданно завершил работу.

CR_SERVER_LOST

Соединение с сервером прервалось в процессе данного запроса.

CR_UNKNOWN_ERROR

Произошла неизвестная ошибка.




mysql_list_dbs()


MYSQL_RES *mysql_list_dbs(MYSQL *mysql, const char *wild)


Описание


Возвращает результирующий набор, состоящий из имен баз данных на сервере, которые встречаются в простом регулярном выражении, указанном в параметре wild. Параметр wild может содержать шаблонные символы "%" или "_", а также может быть указателем NULL, что соответствует всем базам данных. Вызов функции mysql_list_dbs()аналогичен выполнению запроса SHOW databases [LIKE wild].


Результирующий набор необходимо освободить с помощью функции mysql_free_result().


Возвращаемые значения


Результирующий набор MYSQL_RES при успешном выполнении. NULL, если произошла ошибка.


Ошибки


CR_COMMANDS_OUT_OF_SYNC

Команды были выполнены в ненадлежащем порядке.

CR_OUT_OF_MEMORY

Нехватка памяти.

CR_SERVER_GONE_ERROR

Сервер MySQL неожиданно завершил работу.

CR_SERVER_LOST

Соединение с сервером прервалось в процессе данного запроса.

CR_UNKNOWN_ERROR

Произошла неизвестная ошибка.


mysql_list_fields()


MYSQL_RES *mysql_list_fields(MYSQL *mysql, const char *table, const char *wild)


Описание


Возвращает результирующий набор, состоящий из имен полей в заданной таблице, встречающихся в простом регулярном выражении, указанном в параметре wild. Параметр wild может содержать шаблонные символы "%" или "_", а также может быть указателем NULL, что соответствует всем полям. Вызов функции mysql_list_fields() аналогичен выполнению запроса SHOW COLUMNS FROM tbl_name [LIKE wild].


Следует учитывать, что рекомендуется использовать команду SHOW COLUMNS FROM tbl_name вместо функции mysql_list_fields().


Результирующий набор необходимо освободить с помощью функции mysql_free_result().


Возвращаемые значения


Результирующий набор MYSQL_RES при успешном выполнении. NULL, если произошла ошибка.


Ошибки


CR_COMMANDS_OUT_OF_SYNC

Команды были выполнены в ненадлежащем порядке.

CR_SERVER_GONE_ERROR

Сервер MySQL неожиданно завершил работу.

CR_SERVER_LOST

Соединение с сервером прервалось в процессе данного запроса.

CR_UNKNOWN_ERROR

Произошла неизвестная ошибка.




mysql_list_processes()


MYSQL_RES *mysql_list_processes(MYSQL *mysql)


Описание


Возвращает результирующий набор, описывающий текущие потоки на сервере. Предоставляет тот же тип информации, который выдается утилитой mysqladmin processlist или запросом SHOW PROCESSLIST.


Результирующий набор необходимо освободить с помощью функции mysql_free_result().


Возвращаемые значения


Результирующий набор MYSQL_RES при успешном выполнении. NULL, если произошла ошибка.


Ошибки



CR_COMMANDS_OUT_OF_SYNC

Команды были выполнены в ненадлежащем порядке.

CR_SERVER_GONE_ERROR

Сервер MySQL неожиданно завершил работу.

CR_SERVER_LOST

Соединение с сервером прервалось в процессе данного запроса.

CR_UNKNOWN_ERROR

Произошла неизвестная ошибка.




mysql_list_tables()


MYSQL_RES *mysql_list_tables(MYSQL *mysql, const char *wild)


Описание


Возвращает результирующий набор, состоящий из имен таблиц в текущей базе данных, которые встречаются в простом регулярном выражении, указанном в параметре wild. Параметр wild может содержать шаблонные символы "%" или "_", а также может быть указателем NULL, что соответствует всем таблицам. Вызов функции mysql_list_tables()аналогичен выполнению запроса SHOW tables
[LIKE wild]
.


Результирующий набор необходимо освободить с помощью функции mysql_free_result().


Возвращаемые значения


Результирующий набор MYSQL_RES при успешном выполнении. NULL, если произошла ошибка.


Ошибки



CR_COMMANDS_OUT_OF_SYNC

Команды были выполнены в ненадлежащем порядке.

CR_SERVER_GONE_ERROR

Сервер MySQL неожиданно завершил работу.

CR_SERVER_LOST

Соединение с сервером прервалось в процессе данного запроса.

CR_UNKNOWN_ERROR

Произошла неизвестная ошибка.




mysql_num_fields()


unsigned int mysql_num_fields(MYSQL_RES *result)


или


unsigned int mysql_num_fields(MYSQL *mysql)


Вторая форма не работает на версии MySQL 3.22.24 или более новой. Вместо аргумента в параметре MYSQL необходимо использовать выражение unsigned int mysql_field_count(MYSQL *mysql)


Описание


Возвращает количество столбцов в результирующем наборе.


Следует отметить, что можно получить искомое количество столбцов с помощью указателя или на результирующий набор, или на дескриптор соединения. Дескриптор соединения необходимо использовать, если функции mysql_store_result() или mysql_use_result() возвратили NULL (и, следовательно, отсутствует указатель результирующего набора). В этом случае можно вызвать функцию mysql_field_count()для определения, может ли функция mysql_store_result()выдать непустой результат. Это дает возможность данной клиентской программе выполнить соответствующее действие без уточнения, был ли данный запрос командой вида SELECT (или похожей на SELECT). В приведенном ниже примере иллюстрируется, как это можно сделать.


См. раздел Почему после успешных возвратов функции mysql_query() функция mysql_store_result() иногда возвращает NULL?.


Возвращаемые значения


Беззнаковое целое число, представляющее количество полей в результирующем наборе.


Ошибки


Нет.


Пример


MYSQL_RES *result;
unsigned int num_fields;
unsigned int num_rows;


if (mysql_query(&mysql,query_string))
{
// ошибка
}
else // запрос выполнен, обработка возвращенных им данных
{
result = mysql_store_result(&mysql);
if (result) // содержит строки {
num_fields = mysql_num_fields(result);
// извлечение строк, затем вызов mysql_free_result(result)
}
else // mysql_store_result()не вернула ничего; может ли что-либо вернуть?
{
if (mysql_errno(&mysql))
{
fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
}
else if (mysql_field_count(&mysql) == 0)
{
// запрос не возвращает данные
// (запрос не был вида SELECT)
num_rows = mysql_affected_rows(&mysql);
}
}
}


Альтернатива (если известно, что данный запрос должен вернуть результирующий набор) состоит в замене вызова функции mysql_errno(&mysql) на проверку, равна ли 0 функция mysql_field_count(&mysql). Это может случиться, только если что-нибудь происходило не так.


Вперед  >>>
 1  2  3  4  5  6 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Интерфейс PHP API для MySQL

Интерфейс Perl API для MySQL

Поддержка ODBC в MySQL

Интерфейс C для MySQL

Интерфейсы C++ и не только

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь