カスタム設計されたプラグインを使用して、API と特定の SQL 構文を使用してさまざまなデータベース エンジンとやり取りする C++ API の開発に取り組んでいます。
現在、BLOB を挿入する方法を見つけようとしていますがNULL
、C/C++ では終端文字であるため、INSERT INTOクエリ文字列を作成するときに BLOB が切り捨てられます。これまで一緒に仕事をしてきた
//...
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
です。おそらく、SQLite SQL 構文でもサポートされている標準 SQL でこれを行う方法はありますか?
きっと誰かが同じ状況に直面したことがあるはずです。私はグーグルでいくつかの答えを見つけましたが、他のプログラミング言語(Python)でした。
フィードバックをお寄せいただきありがとうございます。