Curso de MySQL
Consultas, lista de correo 'C++ Con Clase' 'MySQL Con Clase' página de entrada Tabla de contenido Contactar con Webmaster
Curso Sentencias Funciones API C

API C

Funciones API C

mysql_affected_rows mysql_autocommit mysql_change_user mysql_character_set_name mysql_close mysql_commit mysql_connect mysql_create_db mysql_data_seek mysql_debug mysql_drop_db mysql_dump_debug_info mysql_errno mysql_error mysql_escape_string mysql_fetch_field mysql_fetch_fields mysql_fetch_field_direct mysql_fetch_lengths mysql_fetch_row mysql_field_count mysql_field_seek mysql_field_tell mysql_free_result mysql_get_client_info mysql_get_client_version mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_get_server_version mysql_hex_string mysql_info mysql_init mysql_insert_id mysql_kill mysql_library_end mysql_library_init mysql_list_dbs mysql_list_fields mysql_list_processes mysql_list_tables mysql_more_results mysql_next_result mysql_num_fields mysql_num_rows mysql_options mysql_ping mysql_query mysql_real_connect mysql_real_escape_string mysql_real_query mysql_reload mysql_rollback mysql_row_seek mysql_row_tell mysql_select_db mysql_set_server_option mysql_shutdown mysql_sqlstate mysql_ssl_set mysql_stat mysql_store_result mysql_thread_id mysql_use_result mysql_warning_count

Tipos API C

MYSQL MYSQL_DATA MYSQL_FIELD MYSQL_RES MYSQL_ROW MYSQL_ROWS

Función mysql_eof()

my_bool mysql_eof(MYSQL_RES *result)

Esta función está desaconsejada. mysql_errno() o mysql_error() pueden usarse en su lugar.

mysql_eof() determina si la última fila de un conjunto de resultados ha sido leída.

Si se obtiene un conjunto de resultados a partir de una llamada exitosa a mysql_store_result(), el cliente recibe el conjunto completo en una operación. En ese caso, un valor NULL de una llamada a mysql_fetch_row() siempre significa que el final del conjunto de resultados ha sido alcanzado y es innecesario llamar a mysql_eof(). Cuando se usa con mysql_store_result(), mysql_eof() siempre devuelve verdadero.

Por otra parte, si se usa mysql_use_result() para iniciar una recuperación de un conjunto de resultados, las filas del conjunto se obtienen del servidor una a una como si se hubiese llamado a mysql_fetch_row() repetidamente. Debido a que se puede producir un error en la conexión durante este proceso, un valor de retorno NULL desde mysql_fetch_row() no significa necesariamente que en final del conjunto de resultados ha sido alcanzado con normalidad. En ese caso, se puede usar mysql_eof() para determinar qué ha sucedido. mysql_eof() devuelve un valor distinto de cero si se ha alcanzado el final del conjunto de resultados y cero si ha ocurrido un error.

Historicamente, mysql_eof() precede a las funciones de error estándar de MySQL mysql_errno() y mysql_error(). Ya que estas funciones de error proporcionan la misma información, su uso es preferible sobre mysql_eof(), que actualmente está desaconsejada. (De hecho, esas funciones proporcionan más información, ya que mysql_eof() devuelve sólo un valor booleano mientras que las funciones de error indican un motivo para el error cuando uno ocurre.)

Valores de retorno  

Cero si no ha ocurrido un error. Distinto de cero si se ha alcanzado el final del conjunto de resultados.

Errores  

Ninguno

Ejemplo  

El siguiente ejemplo muestra cómo se debe usar mysql_eof():

mysql_query(&mysql,"SELECT * FROM some_table");
result = mysql_use_result(&mysql);
while((row = mysql_fetch_row(result)))
{
    // hacer algo con los datos
}
if(!mysql_eof(result))  // mysql_fetch_row() fallo debido a un error
{
    fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
}

Sin embargo, se puede conseguir el mismo efecto con las funciones de error estándar de MySQL:

mysql_query(&mysql,"SELECT * FROM some_table");
result = mysql_use_result(&mysql);
while((row = mysql_fetch_row(result)))
{
    // hacer algo con los datos
}
if(mysql_errno(&mysql))  // mysql_fetch_row() fallo debido a un error
{
    fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
}