SQLite3利用函数sqlite3_column_blob来返回blob字段的内容的指针,并通过sqlite3_column_bytes来返回对应该字段的长度。 只是一直有一个疑问就是通过sqlite3_column_blob返回的二进制blob内容的内存是谁来释放,是由SQLite内部还是用调用者来释放。 后来仔细观察了内存变化发现,sqlite3_column_blob函数会预先分配一块内存,...
// Process the blob data // ... // Release the blob memory if necessary sqlite3_free(blobData); end; // Finalize the statement sqlite3_finalize(stmt); end; ``` 注意:完成对BLOB数据的处理后,如果内存不再使用,需要调用sqlite3_free函数手动释放BLOB内存空间。©...
要记的释放sqlite3_stmt * ptr;定义的指针; 对于sqlite3_column_text()其返回的也是一个void * ,要读取其内容要先转为(char*)sqlite3_column_text();然后就可以直接给string类型,这里转换为char*,是让这个char指针指向一个字符串。