用C将Blob插入sqlite 3

时间:2018-12-01 16:16:06

标签: c sqlite insert blob

因此,我试图将一个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)。 预先感谢。

0 个答案:

没有答案