⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testproviderds.h

📁 VC6数据库开发指南
💻 H
字号:
// TestProviderDS.h : Declaration of the CTestProviderSource
#ifndef __CTestProviderSource_H_
#define __CTestProviderSource_H_
#include "resource.h"       // main symbols
#include "TestProviderRS.h"
/////////////////////////////////////////////////////////////////////////////
// CDataSource
class ATL_NO_VTABLE CTestProviderSource :
	public CComObjectRootEx<CComMultiThreadModel>,
	public CComCoClass<CTestProviderSource, &CLSID_TestProvider>,
	public IDBCreateSessionImpl<CTestProviderSource, CTestProviderSession>,
	public IDBInitializeImpl<CTestProviderSource>,
	public IDBPropertiesImpl<CTestProviderSource>,
	public IPersistImpl<CTestProviderSource>,
	public IInternalConnectionImpl<CTestProviderSource>
{
public:
	CTestProviderSource()
	{
		CoInitialize(NULL);
		CoUninitialize();
		ATLTRACE2(atlTraceDBProvider, 0, "Now in the data source constructor\n");
	}

	~CTestProviderSource()
	{
		ATLTRACE2(atlTraceDBProvider, 0, "Now in the data source destructor\n");
	}

	HRESULT FinalConstruct()
	{
		return FInit();
	}

	HRESULT IsValidValue(ULONG iCurSet, DBPROP* pDBProp)
	{
		ATLASSERT(pDBProp != NULL);
		CComVariant var = pDBProp->vValue;

		switch (pDBProp->dwPropertyID)
		{
		case DBPROP_INIT_MODE:
			{
			LONG lAcceptable = ~(DB_MODE_READWRITE | DB_MODE_SHARE_EXCLUSIVE | DB_MODE_SHARE_DENY_NONE);
			if ((var.lVal & lAcceptable))
				return S_FALSE;
			}
			break;
		case DBPROP_INIT_PROMPT:
			if (var.iVal != DBPROMPT_NOPROMPT && var.iVal != DBPROMPT_PROMPT &&
				var.iVal != DBPROMPT_COMPLETE && var.iVal != DBPROMPT_COMPLETEREQUIRED)
				return S_FALSE;
		case DBPROP_INIT_TIMEOUT:
			if (var.lVal < 0)
				return S_FALSE;
		default:
			break;
		}

		return IDBPropertiesImpl<CTestProviderSource>::IsValidValue(iCurSet, pDBProp);
	}

DECLARE_REGISTRY_RESOURCEID(IDR_TESTPROVIDER)
BEGIN_PROPSET_MAP(CTestProviderSource)
	BEGIN_PROPERTY_SET(DBPROPSET_DATASOURCEINFO)
		PROPERTY_INFO_ENTRY(ACTIVESESSIONS)
		PROPERTY_INFO_ENTRY(ASYNCTXNABORT)
		PROPERTY_INFO_ENTRY(ASYNCTXNCOMMIT)
		PROPERTY_INFO_ENTRY(BYREFACCESSORS)
		PROPERTY_INFO_ENTRY_VALUE(CATALOGLOCATION, DBPROPVAL_CL_START)
		PROPERTY_INFO_ENTRY(CATALOGTERM)
		PROPERTY_INFO_ENTRY(CATALOGUSAGE)
		PROPERTY_INFO_ENTRY(COLUMNDEFINITION)
		PROPERTY_INFO_ENTRY(CONCATNULLBEHAVIOR)
		PROPERTY_INFO_ENTRY(DATASOURCENAME)
		PROPERTY_INFO_ENTRY(DATASOURCEREADONLY)
		PROPERTY_INFO_ENTRY(DBMSNAME)
		PROPERTY_INFO_ENTRY(DBMSVER)
		PROPERTY_INFO_ENTRY_VALUE(DSOTHREADMODEL, DBPROPVAL_RT_FREETHREAD)
		PROPERTY_INFO_ENTRY(GROUPBY)
		PROPERTY_INFO_ENTRY(HETEROGENEOUSTABLES)
		PROPERTY_INFO_ENTRY(IDENTIFIERCASE)
		PROPERTY_INFO_ENTRY(MAXINDEXSIZE)
		PROPERTY_INFO_ENTRY(MAXROWSIZE)
		PROPERTY_INFO_ENTRY(MAXROWSIZEINCLUDESBLOB)
		PROPERTY_INFO_ENTRY(MAXTABLESINSELECT)
		PROPERTY_INFO_ENTRY(MULTIPLEPARAMSETS)
		PROPERTY_INFO_ENTRY(MULTIPLERESULTS)
		PROPERTY_INFO_ENTRY(MULTIPLESTORAGEOBJECTS)
		PROPERTY_INFO_ENTRY(MULTITABLEUPDATE)
		PROPERTY_INFO_ENTRY(NULLCOLLATION)
		PROPERTY_INFO_ENTRY(OLEOBJECTS)
		PROPERTY_INFO_ENTRY(ORDERBYCOLUMNSINSELECT)
		PROPERTY_INFO_ENTRY(OUTPUTPARAMETERAVAILABILITY)
		PROPERTY_INFO_ENTRY(PERSISTENTIDTYPE)
		PROPERTY_INFO_ENTRY(PREPAREABORTBEHAVIOR)
		PROPERTY_INFO_ENTRY(PREPARECOMMITBEHAVIOR)
		PROPERTY_INFO_ENTRY(PROCEDURETERM)
		PROPERTY_INFO_ENTRY(PROVIDERNAME)
		PROPERTY_INFO_ENTRY(PROVIDEROLEDBVER)
		PROPERTY_INFO_ENTRY(PROVIDERVER)
		PROPERTY_INFO_ENTRY(QUOTEDIDENTIFIERCASE)
		PROPERTY_INFO_ENTRY(ROWSETCONVERSIONSONCOMMAND)
		PROPERTY_INFO_ENTRY(SCHEMATERM)
		PROPERTY_INFO_ENTRY(SCHEMAUSAGE)
		PROPERTY_INFO_ENTRY(STRUCTUREDSTORAGE)
		PROPERTY_INFO_ENTRY(SUBQUERIES)
		PROPERTY_INFO_ENTRY(TABLETERM)
		PROPERTY_INFO_ENTRY(USERNAME)
	END_PROPERTY_SET(DBPROPSET_DATASOURCEINFO)
	BEGIN_PROPERTY_SET(DBPROPSET_DBINIT)
		PROPERTY_INFO_ENTRY(AUTH_PASSWORD)
		PROPERTY_INFO_ENTRY(AUTH_PERSIST_SENSITIVE_AUTHINFO)
		PROPERTY_INFO_ENTRY(AUTH_USERID)
		PROPERTY_INFO_ENTRY(INIT_DATASOURCE)
		PROPERTY_INFO_ENTRY(INIT_HWND)
		PROPERTY_INFO_ENTRY(INIT_LCID)
		PROPERTY_INFO_ENTRY(INIT_LOCATION)
		PROPERTY_INFO_ENTRY(INIT_PROVIDERSTRING)
	END_PROPERTY_SET(DBPROPSET_DBINIT)
	CHAIN_PROPERTY_SET(CTestProviderSession)
END_PROPSET_MAP()

	typedef IDBCreateSessionImpl<CTestProviderSource,CTestProviderSession> DBCreateSessionClass;

BEGIN_COM_MAP(CTestProviderSource)
	COM_INTERFACE_ENTRY_IID(IID_IDBCreateSession, DBCreateSessionClass)
	COM_INTERFACE_ENTRY(IDBInitialize)
	COM_INTERFACE_ENTRY(IDBProperties)
	COM_INTERFACE_ENTRY(IPersist)
	COM_INTERFACE_ENTRY(IInternalConnection)
END_COM_MAP()
public:
};
#endif //__CTestProviderSource_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -