unsigned long mysql_hex_string(char *to, const char *from, unsigned long length)
Esta función se usa para crear una cadena SQL legal que se puede usar en una sentencia SQL.
La cadena from se codifica a formato hexadecimal, con cada carácter codificado como dos dígitos hexadecimales. El resultado se coloca en la cadena to y se añade el carácter nulo terminador.
La cadena apuntada por by debe tener length bytes de longitud. Se debe conseguir memoria para el buffer to para que tenga al menos length*2+1 bytes de longitud. Cuando mysql_hex_string() regresa, el contenido de to será una cadena terminada con nulo. El valor de retorno será la longitud de la cadena codificada, sin incluir el carácter nulo terminador.
El valor de retorno puede ser colocado en una sentencia SQL usando tanto el formato 0xvalor o X'valor'. Sin embargo, el valor devuelto no incluye el 0x o X'...'. El usuario debe añadir cualquiera de ambos, tal como desee.
mysql_hex_string() fue añadido en MySQL 4.0.23 y 4.1.8.
char query[1000],*end; end = strmov(query,"INSERT INTO test_table values("); end = strmov(end,"0x"); end += mysql_hex_string(end,"Qué es esto",11); end = strmov(end,",0x"); end += mysql_hex_string(end,"datos binarios: \0\r\n",19); *end++ = ')'; if (mysql_real_query(&mysql,query,(unsigned int) (end - query))) { fprintf(stderr, "Error al insertar fila, Error: %s\n", mysql_error(&mysql)); }
La función strmov() usada en este ejemplo se incluye en la librería mysqlclient y funciona como strcpy() pero devolviendo un puntero al terminador nulo del primer parámetro.
La longitud del valor colocado en to, sin incluir el carácter nulo terminador.
Ninguno.
© Abril de 2005 Salvador Pozo, salvador@conclase.net