diff --git a/src/cpp/database/SqliteDatabase.cpp b/src/cpp/database/SqliteDatabase.cpp index de3dbab2d4..c1167606af 100644 --- a/src/cpp/database/SqliteDatabase.cpp +++ b/src/cpp/database/SqliteDatabase.cpp @@ -291,11 +291,19 @@ int SqliteStatement::size(int column) return sqlite3_column_bytes(statement, column); } -const void* SqliteStatement::getBlob(int column) +const void* SqliteStatement::peekBlob(int column) { return sqlite3_column_blob(statement, column); } +std::vector SqliteStatement::getBlob(int column) +{ + int size = sqlite3_column_bytes(statement, column); + std::vector ret(size); + memcpy(&(ret.front()), sqlite3_column_blob(statement, column), size); + return ret; +} + std::string SqliteStatement::getString(int column) { return reinterpret_cast(sqlite3_column_text(statement, column)); diff --git a/src/cpp/database/SqliteDatabase.h b/src/cpp/database/SqliteDatabase.h index e860c61447..09ffc25c52 100644 --- a/src/cpp/database/SqliteDatabase.h +++ b/src/cpp/database/SqliteDatabase.h @@ -86,7 +86,9 @@ public: int size(int column); - const void* getBlob(int column); + const void* peekBlob(int column); + std::vector getBlob(int column); + std::string getString(int column); const char* peekString(int column); uint32 getUInt32(int column);