Lightweight 0.1.0
Loading...
Searching...
No Matches
SqlConnection Class Referencefinal

Represents a connection to a SQL database. More...

#include <SqlConnection.hpp>

Public Member Functions

LIGHTWEIGHT_API SqlConnection ()
 Constructs a new SQL connection to the default connection.
 
LIGHTWEIGHT_API SqlConnection (std::optional< SqlConnectionString > connectInfo)
 Constructs a new SQL connection to the given connect informaton.
 
LIGHTWEIGHT_API SqlConnection (SqlConnection &&) noexcept
 
LIGHTWEIGHT_API SqlConnectionoperator= (SqlConnection &&) noexcept
 
 SqlConnection (SqlConnection const &)=delete
 
SqlConnectionoperator= (SqlConnection const &)=delete
 
LIGHTWEIGHT_API ~SqlConnection () noexcept
 Destructs this SQL connection object,.
 
uint64_t ConnectionId () const noexcept
 Retrieves the connection ID.
 
LIGHTWEIGHT_API void Close () noexcept
 Closes the connection (attempting to put it back into the connect[[ion pool).
 
LIGHTWEIGHT_API bool Connect (SqlConnectionDataSource const &info) noexcept
 
LIGHTWEIGHT_API bool Connect (SqlConnectionString sqlConnectionString) noexcept
 
LIGHTWEIGHT_API SqlErrorInfo LastError () const
 Retrieves the last error information with respect to this SQL connection handle.
 
LIGHTWEIGHT_API std::string DatabaseName () const
 Retrieves the name of the database in use.
 
LIGHTWEIGHT_API std::string UserName () const
 Retrieves the name of the user.
 
LIGHTWEIGHT_API std::string ServerName () const
 Retrieves the name of the server.
 
LIGHTWEIGHT_API std::string ServerVersion () const
 Retrieves the reported server version.
 
SqlServerType ServerType () const noexcept
 Retrieves the type of the server.
 
std::string const & DriverName () const noexcept
 Retrieves the name of the driver used for this connection.
 
SqlQueryFormatter const & QueryFormatter () const noexcept
 Retrieves a query formatter suitable for the SQL server being connected.
 
LIGHTWEIGHT_API SqlQueryBuilder Query (std::string_view const &table={}) const
 
LIGHTWEIGHT_API SqlQueryBuilder QueryAs (std::string_view const &table, std::string_view const &tableAlias) const
 
LIGHTWEIGHT_API SqlMigrationQueryBuilder Migration () const
 Creates a new migration query builder, compatible the current connection.
 
LIGHTWEIGHT_API bool TransactionActive () const noexcept
 Tests if a transaction is active.
 
LIGHTWEIGHT_API bool TransactionsAllowed () const noexcept
 Tests if transactions are allowed.
 
LIGHTWEIGHT_API bool IsAlive () const noexcept
 Tests if the connection is still active.
 
LIGHTWEIGHT_API SqlConnectionString const & ConnectionString () const noexcept
 Retrieves the connection information.
 
SQLHDBC NativeHandle () const noexcept
 Retrieves the native handle.
 
LIGHTWEIGHT_API std::chrono::steady_clock::time_point LastUsed () const noexcept
 Retrieves the last time the connection was used.
 
LIGHTWEIGHT_API void SetLastUsed (std::chrono::steady_clock::time_point lastUsed) noexcept
 Sets the last time the connection was used.
 
LIGHTWEIGHT_API void RequireSuccess (SQLRETURN sqlResult, std::source_location sourceLocation=std::source_location::current()) const
 Checks the result of an SQL operation, and throws an exception if it is not successful.
 

Static Public Member Functions

static LIGHTWEIGHT_API SqlConnectionString const & DefaultConnectionString () noexcept
 Retrieves the default connection information.
 
static LIGHTWEIGHT_API void SetDefaultConnectionString (SqlConnectionString const &connectionString) noexcept
 
static LIGHTWEIGHT_API void SetDefaultDataSource (SqlConnectionDataSource const &dataSource) noexcept
 Sets the default connection information as SqlConnectionDataSource.
 
static LIGHTWEIGHT_API void SetPostConnectedHook (std::function< void(SqlConnection &)> hook)
 Sets a callback to be called after each connection being established.
 
static LIGHTWEIGHT_API void ResetPostConnectedHook ()
 Resets the post connected hook.
 

Detailed Description

Represents a connection to a SQL database.

Definition at line 36 of file SqlConnection.hpp.

Constructor & Destructor Documentation

◆ SqlConnection() [1/2]

LIGHTWEIGHT_API SqlConnection::SqlConnection ( )

Constructs a new SQL connection to the default connection.

The default connection is set via SetDefaultConnectInfo. In case the default connection is not set, the connection will fail. And in case the connection fails, the last error will be set.

◆ SqlConnection() [2/2]

LIGHTWEIGHT_API SqlConnection::SqlConnection ( std::optional< SqlConnectionString connectInfo)
explicit

Constructs a new SQL connection to the given connect informaton.

Parameters
connectInfoThe connection information to use. If not provided, no connection will be established.

Member Function Documentation

◆ SetDefaultConnectionString()

static LIGHTWEIGHT_API void SqlConnection::SetDefaultConnectionString ( SqlConnectionString const &  connectionString)
staticnoexcept

Sets the default connection information.

Parameters
connectionStringThe connection information to use.

◆ ConnectionId()

uint64_t SqlConnection::ConnectionId ( ) const
inlinenoexcept

Retrieves the connection ID.

This is a unique identifier for the connection, which is useful for debugging purposes. Note, this ID will not change if the connection is moved nor when it is reused via the connection pool.

Definition at line 81 of file SqlConnection.hpp.

◆ Connect() [1/2]

LIGHTWEIGHT_API bool SqlConnection::Connect ( SqlConnectionDataSource const &  info)
noexcept

Connects to the given database with the given username and password.

Return values
trueif the connection was successful.
falseif the connection failed. Use LastError() to retrieve the error information.

◆ Connect() [2/2]

LIGHTWEIGHT_API bool SqlConnection::Connect ( SqlConnectionString  sqlConnectionString)
noexcept

Connects to the given database with the given username and password.

Return values
trueif the connection was successful.
falseif the connection failed. Use LastError() to retrieve the error information.

◆ ServerType()

SqlServerType SqlConnection::ServerType ( ) const
inlinenoexcept

◆ DriverName()

std::string const & SqlConnection::DriverName ( ) const
inlinenoexcept

Retrieves the name of the driver used for this connection.

Definition at line 189 of file SqlConnection.hpp.

◆ QueryFormatter()

SqlQueryFormatter const & SqlConnection::QueryFormatter ( ) const
inlinenoexcept

Retrieves a query formatter suitable for the SQL server being connected.

Definition at line 194 of file SqlConnection.hpp.

Referenced by SqlStatement::MigrateDirect().

◆ Query()

LIGHTWEIGHT_API SqlQueryBuilder SqlConnection::Query ( std::string_view const &  table = {}) const

Creates a new query builder for the given table, compatible with the current connection.

Parameters
tableThe table to query. If not provided, the query will be a generic query builder.

Referenced by DataMapper::All(), DataMapper::BuildQuery(), DataMapper::CreateExplicit(), DataMapper::Delete(), DataMapper::FromTable(), DataMapper::QuerySingleWithoutRelationAutoLoading(), and DataMapper::Update().

◆ QueryAs()

LIGHTWEIGHT_API SqlQueryBuilder SqlConnection::QueryAs ( std::string_view const &  table,
std::string_view const &  tableAlias 
) const

Creates a new query builder for the given table with an alias, compatible with the current connection.

Parameters
tableThe table to query.
tableAliasThe alias to use for the table.

◆ NativeHandle()

SQLHDBC SqlConnection::NativeHandle ( ) const
inlinenoexcept

Retrieves the native handle.

Definition at line 154 of file SqlConnection.hpp.

Referenced by SqlTransaction::TryCommit().


The documentation for this class was generated from the following file: