Visual c++ 如何将多个blob参数传递给SQLite语句?
此代码在第二个sqlite3_bind_blob上引发异常:Visual c++ 如何将多个blob参数传递给SQLite语句?,visual-c++,sqlite,Visual C++,Sqlite,此代码在第二个sqlite3_bind_blob上引发异常: sqlite3_stmt* _stmt; char *sql = sqlite3_mprintf("update logins set password_value=?, possible_usernames=?, form_data=? " "where origin_url='%q' and username_element='%q' and username_value='%q' and password_element
sqlite3_stmt* _stmt;
char *sql = sqlite3_mprintf("update logins set password_value=?, possible_usernames=?, form_data=? "
"where origin_url='%q' and username_element='%q' and username_value='%q' and password_element='%q' and signon_realm='%q'",
sqlite3_column_text(stmt, 0), sqlite3_column_text(stmt, 1), sqlite3_column_text(stmt, 2), sqlite3_column_text(stmt, 3), sqlite3_column_text(stmt, 4));
sqlite3_prepare(db, sql, -1, &_stmt, 0);
sqlite3_bind_blob(_stmt, 1, DataOut5.pbData, DataOut5.cbData, SQLITE_STATIC);
sqlite3_bind_blob(_stmt, 2, DataOut6.pbData, DataOut6.cbData, SQLITE_STATIC);
sqlite3_bind_blob(_stmt, 3, DataOut7.pbData, DataOut7.cbData, SQLITE_STATIC);
sqlite3_step(_stmt);
sqlite3_finalize(_stmt);
sqlite3_free(sql);
此代码成功完成:
sqlite3_stmt* _stmt;
char *sql = sqlite3_mprintf("update logins set password_value=? "//, possible_usernames=?, form_data=? "
"where origin_url='%q' and username_element='%q' and username_value='%q' and password_element='%q' and signon_realm='%q'",
sqlite3_column_text(stmt, 0), sqlite3_column_text(stmt, 1), sqlite3_column_text(stmt, 2), sqlite3_column_text(stmt, 3), sqlite3_column_text(stmt, 4));
sqlite3_prepare(db, sql, -1, &_stmt, 0);
sqlite3_bind_blob(_stmt, 1, DataOut5.pbData, DataOut5.cbData, SQLITE_STATIC);
//sqlite3_bind_blob(_stmt, 2, DataOut6.pbData, DataOut6.cbData, SQLITE_STATIC);
//sqlite3_bind_blob(_stmt, 3, DataOut7.pbData, DataOut7.cbData, SQLITE_STATIC);
sqlite3_step(_stmt);
sqlite3_finalize(_stmt);
sqlite3_free(sql);
为什么?我想可能是,
DataOut6
和DataOut7
有问题。悬空的指针,或者类似的东西。为什么你认为调用sqlite3\u prepare
和sqlite3\u step
成功了?我已经编译并运行了第二个示例,结果如预期的那样成功。我想,DataOut6
和DataOut7
可能有问题。悬空指针,或者类似的东西。为什么你认为对sqlite3\u prepare
和sqlite3\u step
的调用成功了?我已经编译并运行了第二个成功的示例,结果与预期的一样。