SQLite3利用函数sqlite3_column_blob来返回blob字段的内容的指针,并通过sqlite3_column_bytes来返回对应该字段的长度。 只是一直有一个疑问就是通过sqlite3_column_blob返回的二进制blob内容的内存是谁来释放,是由SQLite内部还是用调用者来释放。 后来仔细观察了内存变化发现,sqlite3_
现在我有了指向二进制数据的指针(sqlite3_column_blob)。
function sqlite3_columnblob( stmt: Psqlite3_stmt; iCol: Integer ): Pointer; 参数说明: - stmt:指向已经执行的SQL语句的sqlite3_stmt对象的指针。 - iCol:要获取数据的列索引。索引从0开始计数。 返回值是一个指向BLOB数据的指针,或者如果列包含NULL值,则返回nil。 以下是一个示例代码,演示了如何使用SQLite...
int ISQLite3Provider.sqlite3_column_blob(IntPtr stm, int columnIndex, byte[] result, int offset) { if (result == null || offset >= result.Length) { return raw.SQLITE_ERROR; } IntPtr blobPointer = NativeMethods.sqlite3_column_blob(stm, columnIndex); if (blobPointer == IntPtr.Zero)...