Ich arbeite an der Entwicklung einer C++ API, die benutzerdefinierte Plugins verwendet, um mit verschiedenen Datenbank-Engines mit ihren APIs und spezifische SQL-Syntax zu verbinden.SQLite3: Einfügen von BLOB mit Nullzeichen in C++
Derzeit bin ich versucht, eine Art und Weise des Einsetzens BLOBs zu finden, aber da NULL
ist das Abschlusszeichen in C/C++, die BLOB abgeschnitten wird, wenn die INSERT INTO Query-String-Konstruktion. Bisher habe ich gearbeitet habe
//...
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);
//...
Ich gehe davon aus, dass, wenn es überhaupt möglich ist, es in der SQLite3 interaktive Konsole zu tun, sollte es möglich sein, die Query-String zu konstruieren, mit richtig NULL
Zeichen entkommen. Vielleicht gibt es eine Möglichkeit, dies mit Standard-SQL zu tun, das auch von SQLite SQL-Syntax unterstützt wird?
Sicher muss jemand die gleiche Situation vorher gehabt haben. Ich habe gegoogelt und einige Antworten gefunden, war aber in anderen Programmiersprachen (Python).
Vielen Dank im Voraus für Ihr Feedback.
[This] (http://www.sqlite.org/c3ref/bind_blob.html) Seite scheint alle Funktionen aufzulisten, die Sie brauchen. – zvrba