windows-nt/Source/XPSP1/NT/inetsrv/query/sqltext/iparsess.h
2020-09-26 16:20:57 +08:00

180 lines
5.6 KiB
C++

//--------------------------------------------------------------------
// Microsoft OLE-DB Monarch
// (C) Copyright 1997 Microsoft Corporation. All Rights Reserved.
//
// @doc
//
// @module PARSER.H | IParserSession object
// definitions
//
//
#ifndef _IPARSERSESSION_H_
#define _IPARSERSESSION_H_
//----------------------------------------------------------------------------
// @class CViewData
//
class CViewData
{
public: //@access public functions
CViewData();
~CViewData();
LPWSTR m_pwszViewName;
LPWSTR m_pwszCatalogName;
DBCOMMANDTREE* m_pctProjectList;
CScopeData* m_pCScopeData;
CViewData* m_pNextView;
};
//----------------------------------------------------------------------------
// @class CViewList
//
class CViewList
{
public: //@access public functions
CViewList();
~CViewList();
HRESULT DropViewDefinition( LPWSTR pwszViewName,
LPWSTR pwszCatalogName );
HRESULT SetViewDefinition( CImpIParserSession* pIParsSess,
CImpIParserTreeProperties* pIPTProps,
LPWSTR pwszViewName,
LPWSTR pwszCatalogName,
DBCOMMANDTREE* pctSelectList );
DBCOMMANDTREE* GetViewDefinition( CImpIParserTreeProperties* pIPTProps,
LPWSTR pwszViewName,
LPWSTR pwszCatalogName );
private: //@access private data
CViewData* FindViewDefinition( LPWSTR pwszViewName,
LPWSTR pwszCatalogName );
protected: //@access protected data
CViewData* m_pViewData;
};
//----------------------------------------------------------------------------
// @class CImpIParserSession
//
class CImpIParserSession : public IParserSession
{
private: //@access private member data
LONG m_cRef;
LCID m_lcid;
DWORD m_dwRankingMethod;
GUID m_GuidDialect; // dialect for this session
LPWSTR m_pwszMachine; // provider's current machine
IParserVerify* m_pIPVerify; // unknown part of ParserInput
CViewList* m_pLocalViewList;
CViewList* m_pGlobalViewList;
LPWSTR m_pwszCatalog;
DWORD m_dwSQLDialect;
BOOL m_globalDefinitions;
IColumnMapperCreator* m_pIColMapCreator;
// Critical Section for syncronizing access to session data.
CRITICAL_SECTION m_csSession;
IColumnMapper* m_pColumnMapper;
public: //@access public data
CPropertyList* m_pCPropertyList; // User defined property list
public: //@access public
CImpIParserSession( const GUID* pGuidDialect,
IParserVerify* pIPVerify,
IColumnMapperCreator* pIColMapCreator,
CViewList* pGlobalViewList);
~CImpIParserSession();
HRESULT FInit(LPCWSTR pwszMachine, CPropertyList** ppGlobalPropertyList);
STDMETHODIMP QueryInterface(
REFIID riid, LPVOID* ppVoid);
STDMETHODIMP_(ULONG) Release (void);
STDMETHODIMP_(ULONG) AddRef (void);
//@cmember ToTree method
STDMETHODIMP ToTree
(
LCID lcid,
LPCWSTR pcwszText,
DBCOMMANDTREE** ppCommandTree,
IParserTreeProperties** ppPTProperties
);
STDMETHODIMP FreeTree
(
DBCOMMANDTREE** ppTree
);
STDMETHODIMP SetCatalog
(
LPCWSTR pcwszCatalog
);
public: //@access public functions
inline IParserVerify* GetIPVerifyPtr()
{ return m_pIPVerify; }
inline IColumnMapper* GetColumnMapperPtr()
{ return m_pColumnMapper; }
inline void SetColumnMapperPtr(IColumnMapper* pCMapper)
{ m_pColumnMapper = pCMapper; }
inline LCID GetLCID()
{ return m_lcid; }
inline void SetLCID(LCID lcid)
{ m_lcid = lcid; }
inline DWORD GetRankingMethod()
{ return m_dwRankingMethod; }
inline void SetRankingMethod(DWORD dwRankingMethod)
{ m_dwRankingMethod = dwRankingMethod; }
inline DWORD GetSQLDialect()
{ return m_dwSQLDialect; }
inline LPWSTR GetDefaultCatalog()
{ return m_pwszCatalog; }
inline LPWSTR GetDefaultMachine()
{ return m_pwszMachine; }
inline void SetGlobalDefinition(BOOL fGlobal)
{ m_globalDefinitions = fGlobal; }
inline BOOL GetGlobalDefinition()
{ return m_globalDefinitions; }
inline CViewList* GetLocalViewList()
{ return m_pLocalViewList; }
inline CViewList* GetGlobalViewList()
{ return m_pGlobalViewList; }
private: //@access private functions
CImpIParserSession() {};
};
enum DBDIALECTENUM
{
DBDIALECT_UNKNOWN = 0,
DBDIALECT_MSSQLTEXT = 1,
DBDIALECT_MSSQLJAWS = 2
};
#endif