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_eof 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_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_options()

int mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg)

Puede usarse para activar opciones de conexión extra y afectar al comportamiento de una conexión. Esta función puede ser llamada muchas veces para cambiar varias opciones.

mysql_options() debe ser llamada después de mysql_init() y antes de mysql_connect() o mysql_real_connect().

El argumento option es la opción que se quiere activar; el argumento arg es el valor de la opción. Si la opción es un entero, entonces arg debe apuntar al valor del entero.

Posible valores de opciones:

Opción Tipo de argumento Función
MYSQL_INIT_COMMAND char * Comando a ejecutar cuando se conecte al servidor MySQL. Será reejecutado automáticamente cuando se reconecte.
MYSQL_OPT_COMPRESS Not used Usar el protocolo comprimido cliente/servidor.
MYSQL_OPT_CONNECT_TIMEOUT unsigned int * Tiempo límite para la conexión en segundos.
MYSQL_OPT_LOCAL_INFILE puntero opcional a uint Si no se proporciona un puntero o si el puntero apunta a un unsigned int != 0 el comando LOAD LOCAL INFILE estará permitido.
MYSQL_OPT_NAMED_PIPE No usado Usar tuberías con nombre para conectar a un servidor MySQL en NT.
MYSQL_OPT_PROTOCOL unsigned int * Tipo de protocolo a usar. Debe ser uno de los valores enumerados mysql_protocol_type definido en 'mysql.h'. Nuevo en 4.1.0.
MYSQL_OPT_READ_TIMEOUT unsigned int * Tiempo límite para lecturas desde el servidor (actualmente sólo funciona en Windows con conexiones TCP/IP). Nuevo en 4.1.1.
MYSQL_OPT_WRITE_TIMEOUT unsigned int * Tiempo límite para escrituras en el servidor (actualmente sólo funciona en Windows con conexiones TCP/IP). Nuevo en 4.1.1.
MYSQL_READ_DEFAULT_FILE char * Lee las opciones desde el fichero nombrado en lugar de hacerlo desde 'my.cnf'.
MYSQL_READ_DEFAULT_GROUP char * Lee las opciones desde el grupo nombrado de 'my.cnf' o desde el fichero especificado con MYSQL_READ_DEFAULT_FILE.
MYSQL_REPORT_DATA_TRUNCATION my_bool * Activa o desactiva informes de errores de truncado de datos para sentencias preparadas vía MYSQL_BIND.error. (Por defecto: desactivada) Nuevo en 5.0.3.
MYSQL_SECURE_AUTH my_bool* Si para conectar al servidor no está soportado el nuevo tipo de contraseñas 4.1.1. Nuevo en 4.1.1.
MYSQL_SET_CHARSET_DIR char* El nombre de camino del directorio que contiene los ficheros de definición de juegos de caracteres.
MYSQL_SET_CHARSET_NAME char* El nombre del juego de caracteres a usar como juego de caracteres por defecto.
MYSQL_SHARED_MEMORY_BASE_NAME char* Nombre del objeto de memoria compartida para comunicarse con el servidor. Debe ser la misma que para la opción -shared-memory-base-name usada para el servidor mysqld al que se quiere conectar. Nuevo en 4.1.0.

Hay que tener en cuenta que el grupo del cliente siempre es leído si se usa MYSQL_READ_DEFAULT_FILE o MYSQL_READ_DEFAULT_GROUP.

El grupo especificado en el fichero de opciones debe contener las opciones siguientes:

Opción Descripción
connect-timeout Tiempo límite de conexión en segundos. En Linux este tiempo también se usa para esperar la primera respuesta del servidor.
compress Usar el protocolo cliente/servidor comprimido.
database Conectar a esta base de datos si no se especifica una en el comando de conexión.
debug Opciones de depuración.
disable-local-infile Deshabilitar el uso de LOAD DATA LOCAL.
host Nombre de ordenador por defecto.
init-command Comando a ejecutar cuando se conecte al servidor MySQL. Será reejecutado automáticamente cuando se reconecte.
interactive-timeout Lo mismo que especificar CLIENT_INTERACTIVE en mysql_real_connect().
local-infile[=(0|1)] Si no hay argumento o si argumento != 0 se habilita el uso de LOAD DATA LOCAL.
max_allowed_packet Tamaño máximo de paquete que el cliente puede leer del servidor.
multi-results Permite múltiples conjuntos de resultados desde ejecuciones de sentencias múltiples o procedimientos de almacenamiento. Nuevo en 4.1.1.
multi-statements Permite al cliente enviar múltiples sentencias en una única cadena (separadas por ';'). Nuevo en 4.1.9.
password Contraseña por defecto.
pipe Usar tuberías con nombre para conectar al servidor MySQL en NT.
protocol={TCP | SOCKET | PIPE | MEMORY} Protocolo a usar cuando se conecte al servidor (Nuevo en 4.1)
port Número de puerto por defecto.
return-found-rows Hace que mysql_info() devuelva las filas encontradas en lugar de las actualizadas cuando se usa UPDATE.
shared-memory-base-name=name Nombre de memoria compartida a usar para conectar al servidor (por defecto es "MYSQL"). Nuevo en MySQL 4.1.
socket Fichero socket por defecto.
user Usuario por defecto.

Nótese que timeout ha sido remplazado por connect-timeout, pero timeout seguirá funcionado durante todavía.

Valores de retorno  

Cero si tiene éxito. Distinto de cero si se usa una opción desconocida.

Ejemplo  

MYSQL mysql;

(&mysql);
 mysql_options(&mysql,MYSQL_OPT_COMPRESS,0);
 mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc");
 if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
 {
     fprintf(stderr, "Error al conectar a la base de datos: Error: %s\n",
           mysql_error(&mysql));
 }

Este código pide al cliente que use el protocolo cliente/servidor comprimido y lee las opciones adicionales desde la sección odbc del fichero 'my.cnf'.