CDataConnection Class

Manages the connection with the data source.

Syntax

class CDataConnection  

Requirements

Header: atldbcli.h

Members

Methods

CDataConnection Constructor. Instantiates and initializes a CDataConnection object.
Copy Creates a copy of an existing data connection.
Open Opens a connection to a data source using an initialization string.
OpenNewSession Opens a new session on the current connection.

Operators

operator BOOL Determines whether the current session is open or not.
operator bool Determines whether the current session is open or not.
operator CDataSource& Returns a reference to the contained CDataSource object.
operator CDataSource* Returns a pointer to the contained CDataSource object.
operator CSession& Returns a reference to the contained CSession object.
operator CSession* Returns a pointer to the contained CSession object.

Remarks

CDataConnection is a useful class for creating clients because it encapsulates necessary objects (data source and session) and some of the work you need to do when connecting to a data source

Without CDataConnection, you have to create a CDataSource object, call its OpenFromInitializationString method, then create an instance of a CSession object, call its Open method, then create a CCommand object and call its Open* methods.

With CDataConnection, you only need to create a connection object, pass it an initialization string, then use that connection to open commands. If you plan on using your connection to the database repeatedly, it is a good idea to keep the connection open, and CDataConnection provides a convenient way to do that.

Note

If you are creating a database application that needs to handle multiple sessions, you will need to use OpenNewSession.

CDataConnection::CDataConnection

Instantiates and initializes a CDataConnection object.

Syntax

CDataConnection();   
CDataConnection(const CDataConnection &ds);  

Parameters

ds
[in] A reference to an existing data connection.

Remarks

The first override creates a new CDataConnection object with default settings.

The second override creates a new CDataConnection object with settings equivalent to the data connection object you specify.

CDataConnection::Copy

Creates a copy of an existing data connection.

Syntax

CDataConnection& Copy(const CDataConnection & ds) throw();  

Parameters

ds
[in] A reference to an existing data connection to copy.

CDataConnection::Open

Opens a connection to a data source using an initialization string.

Syntax

HRESULT Open(LPCOLESTR szInitString) throw();  

Parameters

szInitString
[in] The initialization string for the data source.

Return Value

A standard HRESULT.

CDataConnection::OpenNewSession

Opens a new session using the current connection object's data source.

Syntax

HRESULT OpenNewSession(CSession & session) throw();  

Parameters

session
[in/out] A reference to the new session object.

Remarks

The new session uses the current connection object's contained data source object as its parent, and can access all of the same information as the data source.

Return Value

A standard HRESULT.

CDataConnection::operator BOOL

Determines whether the current session is open or not.

Syntax

operator BOOL() throw();  

Remarks

Returns BOOL (MFC typedef) value. TRUE means the current session is open; FALSE means the current session is closed.

CDataConnection::operator bool (OLE DB)

Determines whether the current session is open or not.

Syntax

operator bool() throw();  

Remarks

Returns a bool (C++ data type) value. true means the current session is open; false means the current session is closed.

CDataConnection::operator CDataSource&

Returns a reference to the contained CDataSource object.

Syntax

operator const CDataSource&() throw();  

Remarks

This operator returns a reference to the contained CDataSource object, allowing you to pass a CDataConnection object where a CDataSource reference is expected.

Example

If you have a function (such as func below) that takes a CDataSource reference, you can use CDataSource& to pass a CDataConnection object instead.

void SourceFunc(const CDataSource& theSource)
{
   CComVariant var;
   theSource.GetProperty(DBPROPSET_DATASOURCEINFO, DBPROP_DATASOURCENAME, &var);
}
CDataConnection dc;
dc.Open(szInit);
SourceFunc(dc);

CDataConnection::operator CDataSource*

Returns a pointer to the contained CDataSource object.

Syntax

operator const CDataSource*() throw();  

Remarks

This operator returns a pointer to the contained CDataSource object, allowing you to pass a CDataConnection object where a CDataSource pointer is expected.

See operator CDataSource& for a usage example.

CDataConnection::operator CSession&

Returns a reference to the contained CSession object.

Syntax

operator const CSession&();  

Remarks

This operator returns a reference to the contained CSession object, allowing you to pass a CDataConnection object where a CSession reference is expected.

Example

If you have a function (such as func below) that takes a CSession reference, you can use CSession& to pass a CDataConnection object instead.

void SessionFunc(const CSession& theSession)
{
   XACTTRANSINFO info = {0};
   HRESULT hr = theSession.GetTransactionInfo(&info);
   wprintf_s(_T("GetTransactionInfo returned %x\n"), hr);
}
CDataConnection dc;
dc.Open(szInit);
SessionFunc(dc);

CDataConnection::operator CSession*

Returns a pointer to the contained CSession object.

Syntax

operator const CSession*() throw();  

Remarks

This operator returns a pointer to the contained CSession object, allowing you to pass a CDataConnection object where a CSession pointer is expected.

Example

See operator CSession& for a usage example.

See Also

OLE DB Consumer Templates
OLE DB Consumer Templates Reference