home *** CD-ROM | disk | FTP | other *** search
- //-----------------------------------------------------------------------------
- // Microsoft OLE DB QLAPDEMO Sample
- // Copyright (C) 1995-1998 Microsoft Corporation
- //
- // File: OLAPTab.hpp
- //
- // This file defines the class OLAPTab which is used for printing
- // the results to the console. It prints various rowset and cellset info
- // It also does some formatting tables for output to look nice on the screen
- //-----------------------------------------------------------------------------
-
- #ifndef OLAPTab_hpp
- #define OLAPTab_hpp
-
- #ifndef RC_INVOKED
- #pragma message ("Including OLAPTab.hpp from " __FILE__)
- #endif
-
- //////////////////////////////////////////////////////////////////////////////////////
- class OLAPTab
-
- // The OLAP application class
- //////////////////////////////////////////////////////////////////////////////////////
- {
- private:
-
- TCHAR m_tDelimeter;
-
- LONG m_cColumns;
- LONG m_pColumnLen[OLAP_APP_MAX_COLUMNS];
- TCHAR* m_pColumnStr[OLAP_APP_MAX_COLUMNS];
-
- TCHAR m_pColumnBuffer[OLAP_APP_MAX_STRING_LEN];
-
- protected:
-
- LONG First( TCHAR* string, TCHAR** text, TCHAR** next );
- LONG Next( TCHAR** text, TCHAR** next );
-
- public:
-
- OLAPTab( LPTSTR pFormat = NULL, TCHAR pDelimeter = TEXT(' ') );
- ~OLAPTab();
-
- LONG Set( LPTSTR pFormat = NULL );
- inline LONG GetColumns() { return m_cColumns; }
- inline LONG GetColumnLength( LONG iColumn ) { return (iColumn < m_cColumns) ? m_pColumnLen[iColumn] : 0; }
- inline LPTSTR GetColumnString( LONG iColumn ) { return (iColumn < m_cColumns) ? m_pColumnStr[iColumn] : NULL; }
-
-
- HRESULT PrintPropertiesInfo( IDBCreateSession* pIDBSource, DWORD dwFlags = -1 );
- HRESULT PrintSchemaRowset( IDBCreateCommand* pIDBSession, LPTSTR pcSchema = NULL, GUID* pGuid = NULL );
- HRESULT PrintAxisRowset( IMDDataset* pIMDDataset, LONG iAxis = OLAP_ALL, LPTSTR pAxis = NULL );
-
- BOOL PrintColumnCaption( LONG iColumn, LONG lLength, LPTSTR pCaption );
- BOOL PrintColumnDelimiter( LONG iColumn, LONG lLength );
- BOOL PrintColumnString( LONG iColumn, LPTSTR pData );
- BOOL PrintColumnVariant( LONG iColumn, VARIANT* pData );
-
- HRESULT PrintRowset( IRowset* pIRowset );
- HRESULT PrintDataset( IMDDataset* pIMDDataset );
- HRESULT PrintQuery( IMDDataset* pIMDDataset );
- HRESULT PrintError();
-
- };
-
- //////////////////////////////////////////////////////////////////////////////////////
-
- // Layout of column in memory.
- //////////////////////////////////////////////////////////////////////////////////////
- struct COLUMNDATA {
- DWORD dwLength; // length of data (not space allocated)
- DBSTATUS dwStatus; // status of column
- BYTE bData[1]; // data here and beyond
- };
-
- #define ROUND_UP(Size,Amount) (((DWORD)(Size)+((Amount)-1))&~((Amount)-1))
- const COLUMN_ALIGNVAL = 8;
-
- #endif
-