连接相关属性.DOC

连接相关属性

介绍 初始化或者建立连接在 Windows 编程的许多领域中是一个常见的Pattern 。 如果要在窗口上开始绘制,首先需要通过调用 GetDC 或者 CreateDC 来获取设备上下文,并在完成时关闭 ReleaseDC 或者 DeleteDC 。 如果要使用 Windows 套接字在客户端和服务器之间开始对话,然后先建立连接,完成。 在类似的Pattern 中,如果要查询某些记录,那么需要建立连接,并在完成之后关闭它。 在本文中,我将向你介绍如何使用to开始连接以及如何获取会话以便使用它查询或者编辑数据库。 要使用 OLE DB提供程序初始化到数据库的连接,需要两个ATL类: CDataSource 和 CSession 要使用它们,请包括 atldbcli.h file: #include atldbcli.h 为什么两个类这是因为你可以在同一个连接上创建多个会话。 使用 Open 或者 OpenFromInitializationString 方法打开数据源之后,你很可能希望启动会话。 通过这里会话,你可以创建事务,查询或者编辑数据库。 实际上,即使你使用的是模式类,也是需要的。 对于 OpenFromInitializationString 方法只有一个重载,而 Open 方法有九个重载。 HRESULT OpenFromInitializationString(LPCOLESTR szInitializationString); 我将解释所有 Open 方法重载,但是大多数情况下需要显示数据链接属性对话框以便用户选择 OLE DB 。 HRESULT Open(HWND hWnd = GetActiveWindow(), DBPROMPTOPTIONS dwPromptOptions = DBPROMPTOPTIONS_WIZARDSHEET); HRESULT Open(const CLSID clsid, DBPROPSET* pPropSet = NULL, ULONG nPropertySets=1); HRESULT Open(const CLSID clsid, LPCTSTR pName, LPCTSTR pUserName = NULL, LPCTSTR pPassword = NULL, long nInitMode = 0); HRESULT Open(LPCSTR szProgID, DBPROPSET* pPropSet = NULL, ULONG nPropertySets=1); HRESULT Open(LPCWSTR szProgID, LPCTSTR pName, LPCTSTR pUserName = NULL, LPCTSTR pPassword = NULL, long nInitMode = 0); HRESULT Open(LPCWSTR szProgID, DBPROPSET* pPropSet = NULL, ULONG nPropertySets=1); HRESULT Open(LPCSTR szProgID, LPCTSTR pName, LPCTSTR pUserName = NULL, LPCTSTR pPassword = NULL, long nInitMode = 0); HRESULT Open(const CEnumerator enumerator, DBPROPSET* pPropSet = NULL, ULONG nPropertySets=1); HRESULT Open(const CEnumerator enumerator, LPCTSTR pName, LPCTSTR pUserName = NULL, LPCTSTR pPassword = NULL, long nInitMode = 0); 注意,ATL使用者类基于 COM,这意味着: 在使用这些类之前,我们必须调用 CoInitialize,可能在 InitInstance,然后在稍后的程序中类似地调用 CoUninitialize 。 我们将需要处理 HRESULT 返回值作为成功或者失败的指标。 使用CEnumerator类枚举oledb提供程序 CEnumerator oProviders; HRESULT hr = oProviders.Open( ); if(SUCCEEDED(hr)) { // The following macro is to initialize // the conversion routines USES_CONVERSION; while(oProviders.MoveNext( ) == S_OK) { // Now you

文档评论(0)

1亿VIP精品文档

相关文档