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.
Cero si tiene éxito. Distinto de cero si se usa una opción desconocida.
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'.
© Abril de 2005 Salvador Pozo, salvador@conclase.net