Spec-Zone.ru › MySQL Connectors 1.0

5.4.39 mysql_hex_string()

unsigned long
mysql_hex_string(char *to,
                 const char *from,
                 unsigned long length)

Описание

Эта функция создаёт корректную строку SQL для использования в операторе SQL. Смотрите .

Строка в аргументе from закодирована в шестнадцатеричном формате, при этом каждый символ закодирован как две шестнадцатеричные цифры. Результат помещается в аргумент to, после чего следует завершающий нулевой байт.

Строка, на которую указывает from, должна иметь длину length байта. Буфер to необходимо выделить размером как минимум length*2+1 байт. Когда функция mysql_hex_string() возвращает значение, содержимое to представляет собой строку с нулевым завершением. Возвращаемое значение — длина закодированной строки без учёта завершающего нулевого байта.

Возвращаемое значение можно поместить в оператор SQL, используя формат X'value' или 0xvalue. Однако возвращаемое значение не включает X'...' или 0x. Звонящий код должен предоставить необходимое из них.

Пример

char query[1000],*end;

end = strmov(query,"INSERT INTO test_table values(");
end = strmov(end,"X'");
end += mysql_hex_string(end,"What is this",12);
end = strmov(end,"',X'");
end += mysql_hex_string(end,"binary data: \0\r\n",16);
end = strmov(end,"')");

if (mysql_real_query(&mysql,query,(unsigned int) (end - query)))
{
   fprintf(stderr, "Failed to insert row, Error: %s\n",
           mysql_error(&mysql));
}

Функция strmov(), используемая в примере, включена в библиотеку libmysqlclient и работает как strcpy(), но возвращает указатель на завершающий ноль первого параметра.

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

Длина закодированной строки, помещённой в to, без учёта завершающего нулевого символа.

Ошибки

Нет.

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

Spec-Zone.ru

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