Spec-Zone.ru › MySQL Connectors 1.0

5.4.35 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-5.7-en/mysql-hex-string.html

Spec-Zone.ru

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