Я работаю над разработкой C++ API, который использует настраиваемые плагины для взаимодействия с различными ядрами баз данных с использованием их API и специфического синтаксиса SQL .SQLite3: Вставить BLOB с NULL-символами в C++
В настоящее время я пытаюсь найти способ вставки BLOB-, но так как NULL
является оконечный символ в C/C++, то BLOB становится усеченным при построении INSERT INTO строки запроса. До сих пор, я работал с
//...
char* sql;
void* blob;
int len;
//...
blob = some_blob_already_in_memory;
len = length_of_blob_already_known;
sql = sqlite3_malloc(2*len+1);
sql = sqlite3_mprintf("INSERT INTO table VALUES (%Q)", (char*)blob);
//...
я ожидаю, что, если это вообще возможно сделать это в интерактивной консоли SQLite3, она должна быть возможность построить строку запроса с правильно спасся NULL
символов. Может быть, есть способ сделать это со стандартным SQL, который также поддерживается синтаксисом SQLite SQL?
Несомненно, кто-то должен был столкнуться с такой же ситуацией раньше. Я googled и нашел ответы, но был на других языках программирования (Python).
Заранее благодарю вас за отзыв.
[This] (http://www.sqlite.org/c3ref/bind_blob.html), похоже, перечисляет все необходимые вам функции. – zvrba