CDataConnection

管理与数据源的连接。

语法

class CDataConnection

要求

标头: atldbcli.h

成员

方法

名称 描述
CDataConnection::CDataConnection 构造函数。 实例化并初始化 CDataConnection 对象。
CDataConnection::Copy 创建现有数据连接的副本。
CDataConnection::Open 使用初始化字符串打开到数据源的连接。
CDataConnection::OpenNewSession 在当前连接上打开新会话。

运算符

名称 描述
CDataConnection::operator BOOL 确定当前会话是否打开。
CDataConnection::operator bool 确定当前会话是否打开。
CDataConnection::operator CDataSource& 返回对包含的 CDataSource 对象的引用。
CDataConnection::operator CDataSource* 返回指向包含的 CDataSource 对象的指针。
CDataConnection::operator CSession& 返回对包含的 CSession 对象的引用。
CDataConnection::operator CSession* 返回指向包含的 CSession 对象的指针。

备注

CDataConnection 是用于创建客户端的有用类,因为它封装了所需的对象(数据源和会话),以及连接到数据源时需要执行的某些工作

如果没有 CDataConnection,则需要创建一个 CDataSource 对象,调用其 OpenFromInitializationString 方法,然后创建 CSession 对象的实例,调用其 Open 方法,然后创建一个 CCommand 对象并调用其 Open* 方法。

使用 CDataConnection 时,只需创建连接对象,向它传递一个初始化字符串,然后使用该连接打开命令。 如果计划反复使用与数据库的连接,最好使连接保持打开状态,而 CDataConnection 可提供一种便捷的方式来实现这一点。

注意

如果要创建需要处理多个会话的数据库应用程序,则需要使用 OpenNewSession

CDataConnection::CDataConnection

实例化并初始化 CDataConnection 对象。

语法

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

参数

ds
[in] 对现有数据连接的引用。

注解

第一个替代将使用默认设置创建新的 CDataConnection 对象。

第二个替代将使用等效于你所指定的数据连接对象的设置来创建新的 CDataConnection 对象。

CDataConnection::Copy

创建现有数据连接的副本。

语法

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

参数

ds
[in] 对要复制的现有数据连接的引用。

CDataConnection::Open

使用初始化字符串打开到数据源的连接。

语法

HRESULT Open(LPCOLESTR szInitString) throw();

参数

szInitString
[in] 数据源的初始化字符串。

返回值

一个标准 HRESULT

CDataConnection::OpenNewSession

使用当前连接对象的数据源打开一个新会话。

语法

HRESULT OpenNewSession(CSession & session) throw();

参数

session
[in/out] 对新会话对象的引用。

备注

新会话将当前连接对象所包含的数据源对象用作其父对象,可以访问与数据源相同的所有信息。

返回值

一个标准 HRESULT

CDataConnection::operator BOOL

确定当前会话是否打开。

语法

operator BOOL() throw();

备注

返回 BOOL (MFC typedef) 值。 TRUE 表示当前会话处于打开状态;FALSE 表示当前会话已关闭。

CDataConnection::operator bool (OLE DB)

确定当前会话是否打开。

语法

operator bool() throw();

备注

返回一个 bool(C++ 数据类型)值。 true 表示当前会话处于打开状态;false 表示当前会话已关闭。

CDataConnection::operator CDataSource&

返回对包含的 CDataSource 对象的引用。

语法

operator const CDataSource&() throw();

备注

此运算符将返回对包含的 CDataSource 对象的引用,使你能够在需要 CDataSource 引用的位置传递 CDataConnection 对象。

示例

如果你有一个采用 CDataSource 引用的函数(例如下面的 func),则可以改用 CDataSource& 来传递 CDataConnection 对象。

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

 

CDataConnection dc;
dc.Open(szInit);
SourceFunc(dc);

CDataConnection::operator CDataSource*

返回指向包含的 CDataSource 对象的指针。

语法

operator const CDataSource*() throw();

备注

此运算符将返回指向包含的 CDataSource 对象的指针,允许您传递 CDataConnection 对象(其中需要 CDataSource 指针)。

有关使用示例,请参阅 operator CDataSource&

CDataConnection::operator CSession&

返回对包含的 CSession 对象的引用。

语法

operator const CSession&();

备注

此运算符将返回对包含的 CSession 对象的引用,使你能够在需要 CSession 引用的位置传递 CDataConnection 对象。

示例

如果你有一个采用 CSession 引用的函数(例如下面的 func),则可以改用 CSession& 来传递 CDataConnection 对象。

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*

返回指向包含的 CSession 对象的指针。

语法

operator const CSession*() throw();

备注

此运算符将返回指向包含的 CSession 对象的指针,允许您传递 CDataConnection 对象(其中需要 CSession 指针)。

示例

有关使用示例,请参阅 operator CSession&

另请参阅

OLE DB 使用者模板
OLE DB 使用者模板参考