SQLite3: Insertion d'objets BLOB avec des caractères NULL en C++

Je suis en train de travailler sur le développement d'une API C++ qui utilise la conception personnalisée de plugins
à l'interface avec les différents moteurs de base de données à l'aide de leurs Api et SQL spécifique
la syntaxe.

Actuellement, j'essaie de trouver un moyen de l'insertion d'objets Blob, mais depuis NULL est
le caractère de terminaison en C/C++, la GOUTTE devient tronquée lors de la construction de
le INSÉRER DANS chaîne de requête. Jusqu'à présent, j'ai travaillé avec

//...
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);
//...

Je pense que, si c'est possible de le faire dans le SQLite3 console interactive, il devrait être possible de construire la chaîne de requête avec des échappées NULL caractères. Peut-être il y a un moyen de le faire avec le standard SQL qui est également pris en charge par SQLite syntaxe SQL?

Sûrement quelqu'un doit avoir été confrontés à la même situation qu'avant. J'ai googlé et trouvé quelques réponses, mais dans d'autres langages de programmation (Python).

Merci d'avance pour vos commentaires.

Ceci de la page semble à la liste de toutes les fonctions dont vous avez besoin.

OriginalL'auteur jbatista | 2009-01-01