因此,我试图将一个blob保存到数据库中,但不插入任何内容。 我检查了返回错误,并且总是收到“错误0:不是错误”
我正在使用sqlite3.org示例进行Blob管理:https://www.sqlite.org/cvstrac/wiki?p=BlobExample
无论如何,这里是确切的代码,也许我忘记了一些东西。
int Database::insertToDatabase(
const int zKey, /*Id of row */
const unsigned char *zBlob, /* Pointer to blob of data */
int nBlob, /* Length of data pointed to by zBlob */
){
char zSql[kMaxSqlFunctionSize];
snprintf(zSql, kMaxSqlFunctionSize, "INSERT INTO RECTS(ID,DATA)VALUES(%d,?)",zKey);
sqlite3_stmt *pStmt;
int rc;
do {
rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, NULL);
if( rc!=SQLITE_OK ){
return rc;
}
sqlite3_bind_blob(pStmt, 1, zBlob, nBlob, SQLITE_STATIC);
rc = sqlite3_step(pStmt);
assert( rc!=SQLITE_ROW );
rc = sqlite3_finalize(pStmt);
} while( rc==SQLITE_SCHEMA );
return rc;
}
我使用sqlite_open_v2打开数据库,并正确创建了表(已通过sqlite studio检查),但是idk为什么我无法使此插入工作。 (我要插入的数据不超过1k)。 预先感谢。