39using database_value = std::variant<database_null, std::string, std::int64_t, double, bool>;
Result type for error handling with member function support.
virtual VoidResult begin_transaction()=0
Begin a database transaction.
virtual ~IDatabase()=default
virtual VoidResult connect(const std::string &connection_string)=0
Connect to database using connection string.
virtual bool is_connected() const =0
Check if database is currently connected.
virtual VoidResult commit()=0
Commit the current transaction.
virtual VoidResult execute_command(const std::string &command)=0
Execute a command without returning results.
virtual Result< database_result > execute_query(const std::string &query)=0
Execute a query and return results.
virtual VoidResult rollback()=0
Rollback the current transaction.
virtual VoidResult disconnect()=0
Disconnect from database.
std::vector< database_row > database_result
Vector of rows representing a complete query result set.
std::map< std::string, database_value > database_row
Map of column names to values representing a database row.
std::variant< database_null, std::string, std::int64_t, double, bool > database_value
Variant type for database column values.
Umbrella header for Result<T> type and related utilities.
Represents NULL values in database results.