Spec-Zone.ru › MySQL Connectors 1.0

5.4.14 mysql_eof()

bool
mysql_eof(MYSQL_RES *result)

Описание

Эта функция устарела. Вместо неё можно использовать 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() возвращает только булево значение, в то время как функции ошибок указывают причину ошибки, если она произошла.)

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

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

Ошибки

Нет.

Пример

Следующий пример демонстрирует, как можно использовать mysql_eof():

mysql_query(&mysql,"SELECT * FROM some_table");
result = mysql_use_result(&mysql);
while((row = mysql_fetch_row(result)))
{
    // do something with data
}
if(!mysql_eof(result))  // mysql_fetch_row() failed due to an error
{
    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)))
{
    // do something with data
}
if(mysql_errno(&mysql))  // mysql_fetch_row() failed due to an error
{
    fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
}

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/c-api-8.0-en/mysql-eof.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API