# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • 8 Интерфейсы для MySQL
    • 8.4 Интерфейс C для MySQL
      • 8.4.3 Описание функций интерфейса C
        • 8.4.3.1 mysql_affected_rows()
        • 8.4.3.6 mysql_change_user()
        • 8.4.3.11 mysql_character_set_name()
        • 8.4.3.15 mysql_close()
        • 8.4.3.19 mysql_connect()
        • 8.4.3.23 mysql_create_db()
        • 8.4.3.28 mysql_data_seek()
        • 8.4.3.32 mysql_debug()
        • 8.4.3.37 mysql_drop_db()
        • 8.4.3.42 mysql_dump_debug_info()
        • 8.4.3.46 mysql_eof()
        • 8.4.3.51 mysql_errno()
        • 8.4.3.55 mysql_error()
        • 8.4.3.59 mysql_escape_string()
        • 8.4.3.60 mysql_fetch_field()
        • 8.4.3.65 mysql_fetch_field_direct()
        • 8.4.3.70 mysql_fetch_fields()
        • 8.4.3.75 mysql_fetch_lengths()
        • 8.4.3.80 mysql_fetch_row()
        • 8.4.3.85 mysql_field_count()
        • 8.4.3.90 mysql_field_seek()
        • 8.4.3.94 mysql_field_tell()
        • 8.4.3.98 mysql_free_result()
        • 8.4.3.102 mysql_get_client_info()
        • 8.4.3.106 mysql_get_host_info()
        • 8.4.3.110 mysql_get_proto_info()
        • 8.4.3.114 mysql_get_server_info()
        • 8.4.3.118 mysql_info()
        • 8.4.3.122 mysql_init()
        • 8.4.3.126 mysql_insert_id()
        • 8.4.3.130 mysql_kill()
        • 8.4.3.134 mysql_list_dbs()
        • 8.4.3.138 mysql_list_fields()
        • 8.4.3.142 mysql_list_processes()
        • 8.4.3.146 mysql_list_tables()
        • 8.4.3.150 mysql_num_fields()
        • 8.4.3.155 mysql_num_rows()
        • 8.4.3.159 mysql_options()
        • 8.4.3.163 mysql_ping()
        • 8.4.3.167 mysql_query()
        • 8.4.3.171 mysql_real_connect()
        • 8.4.3.176 mysql_real_escape_string()
        • 8.4.3.181 mysql_real_query()
        • 8.4.3.185 mysql_reload()
        • 8.4.3.189 mysql_row_seek()
        • 8.4.3.193 mysql_row_tell()
        • 8.4.3.197 mysql_select_db()
        • 8.4.3.201 mysql_shutdown()
        • 8.4.3.205 mysql_stat()
        • 8.4.3.209 mysql_store_result()
        • 8.4.3.213 mysql_thread_id()
        • 8.4.3.217 mysql_use_result()

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

8.4.3.46 mysql_eof()

my_bool mysql_eof(MYSQL_RES *result)

8.4.3.47 Описание

Данная функция не рекомендуется. Вместо нее можно использовать функции mysql_errno() или mysql_error().

Функция mysql_eof() определяет, была ли данная строка последней из прочитанных в результирующем наборе данных.

Если результирующий набор получен путем успешного вызова функции mysql_store_result(), то данный клиент получает полный набор данных за одну операцию. В этом случае возврат NULL из mysql_fetch_row() всегда означает, что достигнут конец результирующего набора и нет необходимости в вызове функции mysql_eof(). При использовании совместно с mysql_store_result() функция mysql_eof() всегда будет возвращать TRUE.

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

Исторически сложилось так, что mysql_eof() по своим задачам сходна со стандартными функциями обработки ошибок MySQL mysql_errno() и mysql_error(). Поскольку эти функции дают одну и ту же информацию, их использование более предпочтительно чем mysql_eof(), которая сейчас выведена из употребления (в действительности они предоставляют еще больше информации, т.к. mysql_eof() возвращает только булево значение, в то время как функции обработки ошибок сообщают причину, по которой ошибка произошла).

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

Нуль, если ошибок не произошло. Ненулевая величина, если конец результирующего набора данных достигнут.

8.4.3.49 Ошибки

Никаких.

8.4.3.50 Пример

Следующий пример иллюстрирует применение mysql_eof():

mysql_query(&mysql,"SELECT * FROM some_table");
result = mysql_use_result(&mysql);
while((row = mysql_fetch_row(result)))
{
	// делаем что-то с данными
}
if(!mysql_eof(result)) // mysql_fetch_row() сбойнул из-за ошибки
{
	fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
}

Того же эффекта вы можете достичь с помощью стандартных функций ошибок MySQL:

mysql_query(&mysql,"SELECT * FROM some_table");
result = mysql_use_result(&mysql);
while((row = mysql_fetch_row(result)))
{
	// что-то делаем с данными
}
if(mysql_errno(&mysql)) // mysql_fetch_row() сбойнул из-за ошибки
{
fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
}

User Comments

Add your own comment.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.