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&
。