Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::ODBC::Connection Class Reference

#include <HODBC.h>

Inheritance diagram for Harlinn::ODBC::Connection:
[legend]
Collaboration diagram for Harlinn::ODBC::Connection:
[legend]

Public Types

using Base = SqlHandle<ODBC::HandleType::Connection>
 

Public Member Functions

constexpr Connection () noexcept
 
Descriptor CreateDescriptor () const
 
void BrowseConnect (const SQLWCHAR *inputConnectionString, SQLSMALLINT inputConnectionStringLength, SQLWCHAR *resultConnectionString, SQLSMALLINT resultConnectionStringMaxLength, SQLSMALLINT *resultConnectionStringActualLength) const
 
void BrowseConnect (const SQLCHAR *inputConnectionString, SQLSMALLINT inputConnectionStringLength, SQLCHAR *resultConnectionString, SQLSMALLINT resultConnectionStringMaxLength, SQLSMALLINT *resultConnectionStringActualLength) const
 
Result Connect (const SQLWCHAR *datasourceName, SQLSMALLINT datasourceNameLength, const SQLWCHAR *userName, SQLSMALLINT userNameLength, const SQLWCHAR *authenticationString, SQLSMALLINT authenticationStringLength) const
 
Result Connect (const SQLCHAR *datasourceName, SQLSMALLINT datasourceNameLength, const SQLCHAR *userName, SQLSMALLINT userNameLength, const SQLCHAR *authenticationString, SQLSMALLINT authenticationStringLength) const
 
template<SimpleStringLike StringT>
Result Connect (const StringT &datasourceName) const
 
template<SimpleStringLike StringT1, SimpleStringLike StringT2>
Result Connect (const StringT1 &datasourceName, const StringT2 &userName) const
 
template<SimpleStringLike StringT1, SimpleStringLike StringT2, SimpleStringLike StringT3>
Result Connect (const StringT1 &datasourceName, const StringT2 &userName, const StringT3 &authenticationString) const
 
ODBC::Statement CreateStatement () const
 
Result Disconnect () const
 
Result DriverConnect (SQLHWND windowHandle, const SQLWCHAR *initialConnectionString, SQLSMALLINT initialConnectionStringLength, SQLWCHAR *resultConnectionString, SQLSMALLINT resultConnectionStringMaxLength, SQLSMALLINT *resultConnectionStringActualLength, ODBC::DriverCompletion driverCompletion) const
 
Result DriverConnect (SQLHWND windowHandle, const SQLCHAR *initialConnectionString, SQLSMALLINT initialConnectionStringLength, SQLCHAR *resultConnectionString, SQLSMALLINT resultConnectionStringMaxLength, SQLSMALLINT *resultConnectionStringActualLength, ODBC::DriverCompletion driverCompletion) const
 
Result EndTransaction (ODBC::TransactionCompletionType completionType) const
 
Result Commit () const
 
Result Rollback () const
 
Result GetAttributeW (SQLINTEGER attributeId, SQLPOINTER value, SQLINTEGER valueBufferLength, SQLINTEGER *valueActualLength) const
 
UInt64 GetUInt64Attribute (SQLINTEGER attributeId) const
 
Int64 GetInt64Attribute (SQLINTEGER attributeId) const
 
SQLPOINTER GetPointerAttribute (SQLINTEGER attributeId) const
 
bool GetBooleanAttribute (SQLINTEGER attributeId) const
 
ODBC::Descriptor GetDescriptorAttribute (SQLINTEGER attributeId) const
 
template<typename T >
requires std::is_enum_v<T>
T GetEnumAttribute (SQLINTEGER attributeId) const
 
WideString GetWideStringAttribute (SQLINTEGER attributeId) const
 
Result GetAttributeA (SQLINTEGER attributeId, SQLPOINTER value, SQLINTEGER valueBufferLength, SQLINTEGER *valueActualLength) const
 
Result SetAttributeW (SQLINTEGER attributeId, SQLPOINTER value, SQLINTEGER valueLength) const
 
Result SetUInt64Attribute (SQLINTEGER attributeId, UInt64 value) const
 
Result SetInt64Attribute (SQLINTEGER attributeId, Int64 value) const
 
Result SetBooleanAttribute (SQLINTEGER attributeId, bool value) const
 
Result SetPointerAttribute (SQLINTEGER attributeId, SQLPOINTER value) const
 
Result SetDescriptorAttribute (SQLINTEGER attributeId, SQLHANDLE value) const
 
Result SetDescriptorAttribute (SQLINTEGER attributeId, const Descriptor &value) const
 
template<typename T >
requires std::is_enum_v<T>
Result SetEnumAttribute (SQLINTEGER attributeId, T value) const
 
template<SimpleWideStringLike StringT>
Result SetWideStringAttribute (SQLINTEGER attributeId, const StringT &value) const
 
Result SetAttributeA (SQLINTEGER attributeId, SQLPOINTER value, SQLINTEGER valueLength) const
 
Result SetAccessMode (ODBC::AccessMode accessMode) const
 
ODBC::AccessMode AccessMode () const
 
Result SetAsyncEvent (const EventWaitHandle &eventWaitHandle) const
 
Result SetAsyncEvent (HANDLE eventWaitHandle) const
 
HANDLE AsyncEvent () const
 
Result SetAsyncConnectionFunctionsEnabled (bool asyncEnable) const
 
bool AsyncConnectionFunctionsEnabled () const
 
Result SetAsyncEnabled (bool asyncEnable) const
 
bool AsyncEnabled () const
 
bool SupportsAutoPopulateImplementationParameterDescriptor () const
 
Result SetAutoCommit (bool autoCommit) const
 
bool AutoCommit () const
 
bool ConnectionDead () const
 
bool Connected () const
 
Result SetDTCTransaction (ITransaction *transaction) const
 
template<SimpleWideStringLike StringT>
Result SetCurrentCatalog (const StringT &currentCatalog) const
 
WideString CurrentCatalog () const
 
Result SetAutoCommitMode (bool enabled) const
 
bool AutoCommitMode (bool enabled) const
 
Result GetFunctions (SQLUSMALLINT functionId, SQLUSMALLINT *supported) const
 
Result GetInfoW (SQLUSMALLINT infoType, SQLPOINTER infoValue, SQLSMALLINT infoValueMaxLength, SQLSMALLINT *infoValueActualLength) const
 
Result GetInfoA (SQLUSMALLINT infoType, SQLPOINTER infoValue, SQLSMALLINT infoValueMaxLength, SQLSMALLINT *infoValueActualLength) const
 
Result NativeSql (const SQLWCHAR *inStatement, SQLINTEGER inStatementLength, SQLWCHAR *outStatement, SQLINTEGER outStatementMaxLength, SQLINTEGER *outStatementActualLength) const
 
Result NativeSql (const SQLCHAR *inStatement, SQLINTEGER inStatementLength, SQLCHAR *outStatement, SQLINTEGER outStatementMaxLength, SQLINTEGER *outStatementActualLength) const
 
- Public Member Functions inherited from Harlinn::ODBC::SqlHandle< ODBC::HandleType::Connection >
constexpr SqlHandle () noexcept
 
 SqlHandle (const SqlHandle &other)=delete
 
constexpr SqlHandle (SqlHandle &&other) noexcept
 
 ~SqlHandle ()
 
SqlHandleoperator= (const SqlHandle &other)=delete
 
constexpr SqlHandleoperator= (SqlHandle &&other) noexcept
 
constexpr SQLHANDLE Handle () const noexcept
 
void Close () noexcept
 
Result Cancel () const
 
Result CompleteAsync (RETCODE *asyncRetCode) const
 

Private Member Functions

constexpr Connection (SQLHANDLE sqlHandle, bool destructorClosesHandle=true) noexcept
 

Friends

class Environment
 

Additional Inherited Members

- Static Public Attributes inherited from Harlinn::ODBC::SqlHandle< ODBC::HandleType::Connection >
static constexpr ODBC::HandleType HandleType
 
static constexpr SQLHANDLE InvalidHandle
 
- Protected Member Functions inherited from Harlinn::ODBC::SqlHandle< ODBC::HandleType::Connection >
constexpr SqlHandle (SQLHANDLE sqlHandle, bool destructorClosesHandle) noexcept
 
void SetHandle (SQLHANDLE sqlHandle, bool destructorClosesHandle)
 
void ThrowException (SQLRETURN sqlReturn) const
 
void ThrowException (SQLRETURN sqlReturn, const wchar_t *function, const wchar_t *file, int line) const
 
- Static Protected Member Functions inherited from Harlinn::ODBC::SqlHandle< ODBC::HandleType::Connection >
static SQLHANDLE AllocateHandle (SQLHANDLE inputHandle=SQL_NULL_HANDLE, ODBC::HandleType handleType=HandleType)
 

Detailed Description

The Connection class is a wrapper for the ODBC connection handle.

A connection consists of a driver and a data source. A connection handle identifies each connection. The connection handle defines not only which driver to use but which data source to use with that driver. Within a segment of code that implements ODBC (the Driver Manager or a driver), the connection handle identifies a structure that contains connection information, such as the following:

  • The state of the connection
  • The current connection-level diagnostics
  • The handles of statements and descriptors currently allocated on the connection
  • The current settings of each connection attribute

ODBC does not prevent multiple simultaneous connections, if the driver supports them. Therefore, in a particular ODBC environment, multiple connection handles might point to a variety of drivers and data sources, to the same driver and a variety of data sources, or even to multiple connections to the same driver and data source. Some drivers limit the number of active connections they support; the SQL_MAX_DRIVER_CONNECTIONS option in SQLGetInfo specifies how many active connections a particular driver supports.

Connection handles are primarily used when connecting to the data source (SQLConnect, SQLDriverConnect, or SQLBrowseConnect), disconnecting from the data source (SQLDisconnect), getting information about the driver and data source (SQLGetInfo), retrieving diagnostics (SQLGetDiagField and SQLGetDiagRec), and performing transactions (SQLEndTran). They are also used when setting and getting connection attributes (SQLSetConnectAttr and SQLGetConnectAttr) and when getting the native format of an SQL statement (SQLNativeSql).

Connection handles are allocated with SQLAllocHandle and freed with SQLFreeHandle.

Member Typedef Documentation

◆ Base

Constructor & Destructor Documentation

◆ Connection() [1/2]

Harlinn::ODBC::Connection::Connection ( )
inlineconstexprnoexcept

◆ Connection() [2/2]

Harlinn::ODBC::Connection::Connection ( SQLHANDLE sqlHandle,
bool destructorClosesHandle = true )
inlineexplicitconstexprprivatenoexcept

Member Function Documentation

◆ AccessMode()

ODBC::AccessMode Harlinn::ODBC::Connection::AccessMode ( ) const
inline

◆ AsyncConnectionFunctionsEnabled()

bool Harlinn::ODBC::Connection::AsyncConnectionFunctionsEnabled ( ) const
inline

◆ AsyncEnabled()

bool Harlinn::ODBC::Connection::AsyncEnabled ( ) const
inline

◆ AsyncEvent()

HANDLE Harlinn::ODBC::Connection::AsyncEvent ( ) const
inline

◆ AutoCommit()

bool Harlinn::ODBC::Connection::AutoCommit ( ) const
inline

◆ AutoCommitMode()

bool Harlinn::ODBC::Connection::AutoCommitMode ( bool enabled) const
inline

◆ BrowseConnect() [1/2]

void Harlinn::ODBC::Connection::BrowseConnect ( const SQLCHAR * inputConnectionString,
SQLSMALLINT inputConnectionStringLength,
SQLCHAR * resultConnectionString,
SQLSMALLINT resultConnectionStringMaxLength,
SQLSMALLINT * resultConnectionStringActualLength ) const
inline

◆ BrowseConnect() [2/2]

void Harlinn::ODBC::Connection::BrowseConnect ( const SQLWCHAR * inputConnectionString,
SQLSMALLINT inputConnectionStringLength,
SQLWCHAR * resultConnectionString,
SQLSMALLINT resultConnectionStringMaxLength,
SQLSMALLINT * resultConnectionStringActualLength ) const
inline

◆ Commit()

Result Harlinn::ODBC::Connection::Commit ( ) const
inline

◆ Connect() [1/5]

Result Harlinn::ODBC::Connection::Connect ( const SQLCHAR * datasourceName,
SQLSMALLINT datasourceNameLength,
const SQLCHAR * userName,
SQLSMALLINT userNameLength,
const SQLCHAR * authenticationString,
SQLSMALLINT authenticationStringLength ) const
inline

◆ Connect() [2/5]

Result Harlinn::ODBC::Connection::Connect ( const SQLWCHAR * datasourceName,
SQLSMALLINT datasourceNameLength,
const SQLWCHAR * userName,
SQLSMALLINT userNameLength,
const SQLWCHAR * authenticationString,
SQLSMALLINT authenticationStringLength ) const
inline

◆ Connect() [3/5]

template<SimpleStringLike StringT>
Result Harlinn::ODBC::Connection::Connect ( const StringT & datasourceName) const
inline

◆ Connect() [4/5]

template<SimpleStringLike StringT1, SimpleStringLike StringT2>
Result Harlinn::ODBC::Connection::Connect ( const StringT1 & datasourceName,
const StringT2 & userName ) const
inline

◆ Connect() [5/5]

template<SimpleStringLike StringT1, SimpleStringLike StringT2, SimpleStringLike StringT3>
Result Harlinn::ODBC::Connection::Connect ( const StringT1 & datasourceName,
const StringT2 & userName,
const StringT3 & authenticationString ) const
inline

◆ Connected()

bool Harlinn::ODBC::Connection::Connected ( ) const
inline

◆ ConnectionDead()

bool Harlinn::ODBC::Connection::ConnectionDead ( ) const
inline

◆ CreateDescriptor()

Descriptor Harlinn::ODBC::Connection::CreateDescriptor ( ) const
inline

◆ CreateStatement()

ODBC::Statement Harlinn::ODBC::Connection::CreateStatement ( ) const
inline

◆ CurrentCatalog()

WideString Harlinn::ODBC::Connection::CurrentCatalog ( ) const
inline

◆ Disconnect()

Result Harlinn::ODBC::Connection::Disconnect ( ) const
inline

◆ DriverConnect() [1/2]

Result Harlinn::ODBC::Connection::DriverConnect ( SQLHWND windowHandle,
const SQLCHAR * initialConnectionString,
SQLSMALLINT initialConnectionStringLength,
SQLCHAR * resultConnectionString,
SQLSMALLINT resultConnectionStringMaxLength,
SQLSMALLINT * resultConnectionStringActualLength,
ODBC::DriverCompletion driverCompletion ) const
inline

◆ DriverConnect() [2/2]

Result Harlinn::ODBC::Connection::DriverConnect ( SQLHWND windowHandle,
const SQLWCHAR * initialConnectionString,
SQLSMALLINT initialConnectionStringLength,
SQLWCHAR * resultConnectionString,
SQLSMALLINT resultConnectionStringMaxLength,
SQLSMALLINT * resultConnectionStringActualLength,
ODBC::DriverCompletion driverCompletion ) const
inline

◆ EndTransaction()

Result Harlinn::ODBC::Connection::EndTransaction ( ODBC::TransactionCompletionType completionType) const
inline

◆ GetAttributeA()

Result Harlinn::ODBC::Connection::GetAttributeA ( SQLINTEGER attributeId,
SQLPOINTER value,
SQLINTEGER valueBufferLength,
SQLINTEGER * valueActualLength ) const
inline

◆ GetAttributeW()

Result Harlinn::ODBC::Connection::GetAttributeW ( SQLINTEGER attributeId,
SQLPOINTER value,
SQLINTEGER valueBufferLength,
SQLINTEGER * valueActualLength ) const
inline

◆ GetBooleanAttribute()

bool Harlinn::ODBC::Connection::GetBooleanAttribute ( SQLINTEGER attributeId) const
inline

◆ GetDescriptorAttribute()

ODBC::Descriptor Harlinn::ODBC::Connection::GetDescriptorAttribute ( SQLINTEGER attributeId) const
inline

◆ GetEnumAttribute()

template<typename T >
requires std::is_enum_v<T>
T Harlinn::ODBC::Connection::GetEnumAttribute ( SQLINTEGER attributeId) const
inline

◆ GetFunctions()

Result Harlinn::ODBC::Connection::GetFunctions ( SQLUSMALLINT functionId,
SQLUSMALLINT * supported ) const
inline

◆ GetInfoA()

Result Harlinn::ODBC::Connection::GetInfoA ( SQLUSMALLINT infoType,
SQLPOINTER infoValue,
SQLSMALLINT infoValueMaxLength,
SQLSMALLINT * infoValueActualLength ) const
inline

◆ GetInfoW()

Result Harlinn::ODBC::Connection::GetInfoW ( SQLUSMALLINT infoType,
SQLPOINTER infoValue,
SQLSMALLINT infoValueMaxLength,
SQLSMALLINT * infoValueActualLength ) const
inline

◆ GetInt64Attribute()

Int64 Harlinn::ODBC::Connection::GetInt64Attribute ( SQLINTEGER attributeId) const
inline

◆ GetPointerAttribute()

SQLPOINTER Harlinn::ODBC::Connection::GetPointerAttribute ( SQLINTEGER attributeId) const
inline

◆ GetUInt64Attribute()

UInt64 Harlinn::ODBC::Connection::GetUInt64Attribute ( SQLINTEGER attributeId) const
inline

◆ GetWideStringAttribute()

WideString Harlinn::ODBC::Connection::GetWideStringAttribute ( SQLINTEGER attributeId) const
inline

◆ NativeSql() [1/2]

Result Harlinn::ODBC::Connection::NativeSql ( const SQLCHAR * inStatement,
SQLINTEGER inStatementLength,
SQLCHAR * outStatement,
SQLINTEGER outStatementMaxLength,
SQLINTEGER * outStatementActualLength ) const
inline

◆ NativeSql() [2/2]

Result Harlinn::ODBC::Connection::NativeSql ( const SQLWCHAR * inStatement,
SQLINTEGER inStatementLength,
SQLWCHAR * outStatement,
SQLINTEGER outStatementMaxLength,
SQLINTEGER * outStatementActualLength ) const
inline

◆ Rollback()

Result Harlinn::ODBC::Connection::Rollback ( ) const
inline

◆ SetAccessMode()

Result Harlinn::ODBC::Connection::SetAccessMode ( ODBC::AccessMode accessMode) const
inline

◆ SetAsyncConnectionFunctionsEnabled()

Result Harlinn::ODBC::Connection::SetAsyncConnectionFunctionsEnabled ( bool asyncEnable) const
inline

◆ SetAsyncEnabled()

Result Harlinn::ODBC::Connection::SetAsyncEnabled ( bool asyncEnable) const
inline

◆ SetAsyncEvent() [1/2]

Result Harlinn::ODBC::Connection::SetAsyncEvent ( const EventWaitHandle & eventWaitHandle) const
inline

◆ SetAsyncEvent() [2/2]

Result Harlinn::ODBC::Connection::SetAsyncEvent ( HANDLE eventWaitHandle) const
inline

◆ SetAttributeA()

Result Harlinn::ODBC::Connection::SetAttributeA ( SQLINTEGER attributeId,
SQLPOINTER value,
SQLINTEGER valueLength ) const
inline

◆ SetAttributeW()

Result Harlinn::ODBC::Connection::SetAttributeW ( SQLINTEGER attributeId,
SQLPOINTER value,
SQLINTEGER valueLength ) const
inline

◆ SetAutoCommit()

Result Harlinn::ODBC::Connection::SetAutoCommit ( bool autoCommit) const
inline

◆ SetAutoCommitMode()

Result Harlinn::ODBC::Connection::SetAutoCommitMode ( bool enabled) const
inline

◆ SetBooleanAttribute()

Result Harlinn::ODBC::Connection::SetBooleanAttribute ( SQLINTEGER attributeId,
bool value ) const
inline

◆ SetCurrentCatalog()

template<SimpleWideStringLike StringT>
Result Harlinn::ODBC::Connection::SetCurrentCatalog ( const StringT & currentCatalog) const
inline

◆ SetDescriptorAttribute() [1/2]

Result Harlinn::ODBC::Connection::SetDescriptorAttribute ( SQLINTEGER attributeId,
const Descriptor & value ) const
inline

◆ SetDescriptorAttribute() [2/2]

Result Harlinn::ODBC::Connection::SetDescriptorAttribute ( SQLINTEGER attributeId,
SQLHANDLE value ) const
inline

◆ SetDTCTransaction()

Result Harlinn::ODBC::Connection::SetDTCTransaction ( ITransaction * transaction) const
inline

◆ SetEnumAttribute()

template<typename T >
requires std::is_enum_v<T>
Result Harlinn::ODBC::Connection::SetEnumAttribute ( SQLINTEGER attributeId,
T value ) const
inline

◆ SetInt64Attribute()

Result Harlinn::ODBC::Connection::SetInt64Attribute ( SQLINTEGER attributeId,
Int64 value ) const
inline

◆ SetPointerAttribute()

Result Harlinn::ODBC::Connection::SetPointerAttribute ( SQLINTEGER attributeId,
SQLPOINTER value ) const
inline

◆ SetUInt64Attribute()

Result Harlinn::ODBC::Connection::SetUInt64Attribute ( SQLINTEGER attributeId,
UInt64 value ) const
inline

◆ SetWideStringAttribute()

template<SimpleWideStringLike StringT>
Result Harlinn::ODBC::Connection::SetWideStringAttribute ( SQLINTEGER attributeId,
const StringT & value ) const
inline

◆ SupportsAutoPopulateImplementationParameterDescriptor()

bool Harlinn::ODBC::Connection::SupportsAutoPopulateImplementationParameterDescriptor ( ) const
inline

Friends And Related Symbol Documentation

◆ Environment

friend class Environment
friend

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