Add wrapper for bind parameter count

This commit is contained in:
Johannes Rave 2019-03-04 18:43:32 +02:00
parent cb6c16aadb
commit 1dab172264
3 changed files with 23 additions and 0 deletions

View File

@ -620,6 +620,9 @@ public:
return mbDone;
}
/// Return the number of bind parameters in the statement
int getBindParameterCount() const noexcept;
/// Return the numeric result code for the most recent failed API call (if any).
int getErrorCode() const noexcept; // nothrow
/// Return the extended numeric result code for the most recent failed API call (if any).

View File

@ -378,6 +378,11 @@ int Statement::getColumnIndex(const char* apName) const
return (*iIndex).second;
}
int Statement::getBindParameterCount() const noexcept
{
return sqlite3_bind_parameter_count(mStmtPtr);
}
// Return the numeric result code for the most recent failed API call (if any).
int Statement::getErrorCode() const noexcept // nothrow
{

View File

@ -797,3 +797,18 @@ TEST(Statement, bind64bitsLong) {
EXPECT_EQ(4294967297L, query.getColumn(0).getInt64());
}
#endif
TEST(Statement, getBindParameterCount) {
// Create a new database
SQLite::Database db(":memory:", SQLite::OPEN_READWRITE | SQLite::OPEN_CREATE);
EXPECT_EQ(0, db.exec("CREATE TABLE test (id INTEGER PRIMARY KEY, msg TEXT)"));
SQLite::Statement query(db, "SELECT id, msg FROM test where id = ?");
EXPECT_EQ(1, query.getBindParameterCount());
SQLite::Statement query2(db, "SELECT id, msg FROM test where id = ? and msg = ?");
EXPECT_EQ(2, query2.getBindParameterCount());
SQLite::Statement query3(db, "SELECT id, msg FROM test");
EXPECT_EQ(0, query3.getBindParameterCount());
}