Estoy trabajando en el desarrollo de una API C++ que utiliza complementos diseñados a medida para interactuar con diferentes motores de base de datos utilizando sus API y su sintaxis específica de SQL .SQLite3: Inserte BLOB con caracteres NULL en C++
Actualmente, estoy tratando de encontrar una forma de manchas inserción, pero desde NULL
es el carácter de terminación en C/C++, el BLOB se va a truncar cuando se construye la INSERT INTO cadena de consulta. Hasta ahora, he trabajado con
//...
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);
//...
espero que, si es del todo posible hacerlo en la consola interactiva SQLite3, debería ser posible construir la cadena de consulta con escapado adecuadamente NULL
caracteres. ¿Tal vez hay una forma de hacer esto con SQL estándar que también es compatible con la sintaxis SQLite SQL?
Seguramente alguien debe haber enfrentado la misma situación antes. Busqué en Google y encontré algunas respuestas, pero estuve en otros lenguajes de programación (Python).
Gracias de antemano por sus comentarios.
[Este] (http://www.sqlite.org/c3ref/bind_blob.html) página parece enumerar todas las funciones que necesita. – zvrba