AutoCatGnome/services/IDBEntity.cpp

42 lines
1.1 KiB
C++

//
// Created by selim on 09.11.22.
//
#include "IDBEntity.h"
std::string IDBEntity::readString(sqlite3_stmt *stmt, int column) {
return { reinterpret_cast<const char*>(sqlite3_column_text(stmt, column)) };
}
int IDBEntity::readInt(sqlite3_stmt *stmt, int column) {
return sqlite3_column_int(stmt, column);
}
double IDBEntity::readDouble(sqlite3_stmt *stmt, int column) {
return sqlite3_column_double(stmt, column);
}
StringOptional IDBEntity::readStringOptional(sqlite3_stmt *stmt, int column) {
if(sqlite3_column_type(stmt, column) == SQLITE_NULL) {
return std::nullopt;
} else {
return readString(stmt, column);
}
}
IntOptional IDBEntity::readIntOptional(sqlite3_stmt *stmt, int column) {
if(sqlite3_column_type(stmt, column) == SQLITE_NULL) {
return std::nullopt;
} else {
return readInt(stmt, column);
}
}
DoubleOptional IDBEntity::readDoubleOptional(sqlite3_stmt *stmt, int column) {
if(sqlite3_column_type(stmt, column) == SQLITE_NULL) {
return std::nullopt;
} else {
return readDouble(stmt, column);
}
}