SQLite に 4 の倍数のメモリ チャンクでブロブを返すように指示できるかどうか疑問に思っていました。
さまざまな理由で、これによりコードの他の部分がより単純になります。
C-API関数を使用しています
const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);
インクリメンタル I/O 用に BLOB を開き、そのデータの一部を読み取ることができます。最後に、 BLOB を閉じる必要があります。
そのような機能はありません。SQLite によって返されるポインターは、より大きなデータ構造の一部である可能性があるバッファーを指します。
より大きなバッファを十分に確保したい場合は、独自のコピーを作成する必要があります。