183 lines
7.4 KiB
C++
183 lines
7.4 KiB
C++
//--------------------------------------------------------------------
|
|
// Microsoft OLE DB Test
|
|
//
|
|
// Copyright (C) 1997-2000 Microsoft Corporation
|
|
//
|
|
// @doc
|
|
//
|
|
// @module QUIKTEST.H | This module contains header information for
|
|
// OLE DB Provider Quik Test
|
|
//
|
|
//
|
|
|
|
#ifndef _QUIKTEST_H_
|
|
#define _QUIKTEST_H_
|
|
|
|
#include "oledb.h" // OLE DB Header Files
|
|
#include "oledberr.h"
|
|
#include "privlib.h"
|
|
|
|
//----------------------------------------------------------------------
|
|
// Defines
|
|
//----------------------------------------------------------------------
|
|
#define FILENAME_SIZE _MAX_FNAME
|
|
#define PATH_SIZE _MAX_PATH
|
|
#define MIN_ROWS 5 //Minimum number of rows on Table.
|
|
|
|
//----------------------------------------------------------------------
|
|
// String constants
|
|
//----------------------------------------------------------------------
|
|
//These are used in the CBaseError class implementation.
|
|
const WCHAR wszErrorFindingCurrentPath[] = L"Error finding current path.\n";
|
|
const WCHAR wszErrorTitle[] = L"--- Error ----------\n";
|
|
const WCHAR wszWarningTitle[] = L"--- Warning --------\n";
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
// Const Static Arrays
|
|
//----------------------------------------------------------------------
|
|
//Mandatory columns of a columns rowset.
|
|
struct tagMandCols
|
|
{
|
|
const DBID* pDbid;
|
|
DBTYPE wType;
|
|
WCHAR* pwszName;
|
|
} g_rgMandCols[] =
|
|
{
|
|
// DBID DBTYPE Name
|
|
&DBCOLUMN_IDNAME, DBTYPE_WSTR, L"DBCOLUMN_IDNAME",
|
|
&DBCOLUMN_GUID, DBTYPE_GUID, L"DBCOLUMN_GUID",
|
|
&DBCOLUMN_PROPID, DBTYPE_UI4, L"DBCOLUMN_PROPID",
|
|
&DBCOLUMN_NAME, DBTYPE_WSTR, L"DBCOLUMN_NAME",
|
|
&DBCOLUMN_NUMBER, DBTYPEFOR_DBORDINAL, L"DBCOLUMN_NUMBER",
|
|
&DBCOLUMN_TYPE, DBTYPE_UI2, L"DBCOLUMN_TYPE",
|
|
&DBCOLUMN_TYPEINFO, DBTYPE_IUNKNOWN, L"DBCOLUMN_TYPEINFO",
|
|
&DBCOLUMN_COLUMNSIZE, DBTYPEFOR_DBLENGTH, L"DBCOLUMN_COLUMNSIZE",
|
|
&DBCOLUMN_PRECISION, DBTYPE_UI2, L"DBCOLUMN_PRECISION",
|
|
&DBCOLUMN_SCALE, DBTYPE_I2, L"DBCOLUMN_SCALE",
|
|
&DBCOLUMN_FLAGS, DBTYPE_UI4, L"DBCOLUMN_FLAGS"
|
|
};
|
|
|
|
const ULONG g_cMandCols = NUMELEM(g_rgMandCols);
|
|
|
|
//List of Keywords from OLE DB.
|
|
const LPWSTR g_rgpwszKeywords[] = {
|
|
L"ABSOLUTE",L"ACTION",L"ADD",L"ALL",L"ALLOCATE",L"ALTER",L"AND",L"ANY",L"ARE",L"AS",L"ASC",
|
|
L"ASSERTION",L"AT",L"AUTHORIZATION",L"AVG",L"BEGIN",L"BETWEEN",L"BIT",L"BIT_LENGTH",L"BOTH",
|
|
L"BY",L"CASCADE",L"CASCADED",L"CASE",L"CAST",L"CATALOG",L"CHAR",L"CHAR_LENGTH",L"CHARACTER",
|
|
L"CHARACTER_LENGTH",L"CHECK",L"CLOSE",L"COALESCE",L"COLLATE",L"COLLATION",L"COLUMN",
|
|
L"COMMIT",L"CONNECT",L"CONNECTION",L"CONSTRAINT",L"CONSTRAINTS",L"CONTINUE",L"CONVERT",
|
|
L"CORRESPONDING",L"COUNT",L"CREATE",L"CROSS",L"CURRENT",L"CURRENT_DATE",L"CURRENT_TIME",
|
|
L"CURRENT_TIMESTAMP",L"CURRENT_USER",L"CURSOR",L"DATE",L"DAY",L"DEALLOCATE",L"DEC",
|
|
L"DECIMAL",L"DECLARE",L"DEFAULT",L"DEFERRABLE",L"DEFERRED",L"DELETE",L"DESC",L"DESCRIBE",
|
|
L"DESCRIPTOR",L"DIAGNOSTICS",L"DISCONNECT",L"DISTINCT",L"DISTINCTROW",L"DOMAIN",L"DOUBLE",
|
|
L"DROP",L"ELSE",L"END",L"END-EXEC",L"ESCAPE",L"EXCEPT",L"EXCEPTION",L"EXEC",L"EXECUTE",
|
|
L"EXISTS",L"EXTERNAL",L"EXTRACT",L"FALSE",L"FETCH",L"FIRST",L"FLOAT",L"FOR",L"FOREIGN",
|
|
L"FOUND",L"FROM",L"FULL",L"GET",L"GLOBAL",L"GO",L"GOTO",L"GRANT",L"GROUP",L"HAVING",L"HOUR",
|
|
L"IDENTITY",L"IMMEDIATE",L"IN",L"INDICATOR",L"INITIALLY",L"INNER",L"INPUT",L"INSENSITIVE",
|
|
L"INSERT",L"INT",L"INTEGER",L"INTERSECT",L"INTERVAL",L"INTO",L"IS",L"ISOLATION",L"JOIN",
|
|
L"KEY",L"LANGUAGE",L"LAST",L"LEADING",L"LEFT",L"LEVEL",L"LIKE",L"LOCAL",L"LOWER",L"MATCH",L"MAX",
|
|
L"MIN",L"MINUTE",L"MODULE",L"MONTH",L"NAMES",L"NATIONAL",L"NATURAL",L"NCHAR",L"NEXT",L"NO",
|
|
L"NOT",L"NULL",L"NULLIF",L"NUMERIC",L"OCTET_LENGTH",L"OF",L"ON",L"ONLY",L"OPEN",L"OPTION",
|
|
L"OR",L"ORDER",L"OUTER",L"OUTPUT",L"OVERLAPS",L"PARTIAL",L"POSITION",L"PRECISION",L"PREPARE",
|
|
L"PRESERVE",L"PRIMARY",L"PRIOR",L"PRIVILEGES",L"PROCEDURE",L"PUBLIC",L"READ",L"REAL",
|
|
L"REFERENCES",L"RELATIVE",L"RESTRICT",L"REVOKE",L"RIGHT",L"ROLLBACK",L"ROWS",L"SCHEMA",
|
|
L"SCROLL",L"SECOND",L"SECTION",L"SELECT",L"SESSION",L"SESSION_USER",L"SET",L"SIZE",L"SMALLINT",
|
|
L"SOME",L"SQL",L"SQLCODE",L"SQLERROR",L"SQLSTATE",L"SUBSTRING",L"SUM",L"SYSTEM_USER",L"TABLE",
|
|
L"TEMPORARY",L"THEN",L"TIME",L"TIMESTAMP",L"TIMEZONE_HOUR",L"TIMEZONE_MINUTE",L"TO",
|
|
L"TRAILING",L"TRANSACTION",L"TRANSLATE",L"TRANSLATION",L"TRIGGER",L"TRIM",L"TRUE",L"UNION",
|
|
L"UNIQUE",L"UNKNOWN",L"UPDATE",L"UPPER",L"USAGE",L"USER",L"USING",L"VALUE",L"VALUES",L"VARCHAR",
|
|
L"VARYING",L"VIEW",L"WHEN",L"WHENEVER",L"WHERE",L"WITH",L"WORK",L"WRITE",L"YEAR",L"ZONE",
|
|
};
|
|
|
|
//LITERALS Constants.
|
|
const LPWSTR g_rgpwszLiterals[] = {
|
|
L"DBLITERAL_INVALID",L"DBLITERAL_BINARY_LITERAL",L"DBLITERAL_CATALOG_NAME",
|
|
L"DBLITERAL_CATALOG_SEPARATOR",L"DBLITERAL_CHAR_LITERAL",
|
|
L"DBLITERAL_COLUMN_ALIAS",L"DBLITERAL_COLUMN_NAME",L"DBLITERAL_CORRELATION_NAME",
|
|
L"DBLITERAL_CURSOR_NAME",L"DBLITERAL_ESCAPE_PERCENT_PREFIX",L"DBLITERAL_ESCAPE_UNDERSCORE_PREFIX",
|
|
L"DBLITERAL_INDEX_NAME",L"DBLITERAL_LIKE_PERCENT",L"DBLITERAL_LIKE_UNDERSCORE",
|
|
L"DBLITERAL_PROCEDURE_NAME",L"DBLITERAL_QUOTE_PREFIX",L"DBLITERAL_SCHEMA_NAME",
|
|
L"DBLITERAL_TABLE_NAME",L"DBLITERAL_TEXT_COMMAND",L"DBLITERAL_USER_NAME",
|
|
L"DBLITERAL_VIEW_NAME",L"DBLITERAL_CUBE_NAME",L"DBLITERAL_DIMENSION_NAME",
|
|
L"DBLITERAL_HIERARCHY_NAME",L"DBLITERAL_LEVEL_NAME",L"DBLITERAL_MEMBER_NAME",
|
|
L"DBLITERAL_PROPERTY_NAME",L"DBLITERAL_SCHEMA_SEPARATOR",L"DBLITERAL_QUOTE_SUFFIX",
|
|
L"DBLITERAL_ESCAPE_PERCENT_SUFFIX",L"DBLITERAL_ESCAPE_UNDERSCORE_SUFFIX"
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// CBaseError Class
|
|
//
|
|
///////////////////////////////////////////////////////////////////////
|
|
class CBaseError : public IError
|
|
{
|
|
public:
|
|
DWORD m_cRef;
|
|
|
|
HRESULT m_ExpectedHr;
|
|
HRESULT m_ActualHr;
|
|
|
|
DWORD m_cModErrors;
|
|
DWORD m_cCaseErrors;
|
|
DWORD m_cVarErrors;
|
|
|
|
DWORD m_cModWarnings;
|
|
DWORD m_cCaseWarnings;
|
|
DWORD m_cVarWarnings;
|
|
|
|
ERRORLEVEL m_ErrorLevel;
|
|
|
|
CBaseError(void);
|
|
virtual ~CBaseError();
|
|
HRESULT Transmit(CHAR* pszString);
|
|
|
|
|
|
//
|
|
// IError
|
|
//
|
|
|
|
STDMETHODIMP GetErrorLevel (ERRORLEVEL *pErrorLevel);
|
|
STDMETHODIMP SetErrorLevel (ERRORLEVEL ErrorLevel);
|
|
STDMETHODIMP GetActualHr (LONG *phrActual);
|
|
STDMETHODIMP Validate (LONG hrActual,
|
|
BSTR bstrFileName,
|
|
LONG lLineNo,
|
|
LONG hrExpected,
|
|
VARIANT_BOOL *pfResult);
|
|
STDMETHODIMP Compare (VARIANT_BOOL fWereEqual,
|
|
BSTR bstrFileName,
|
|
LONG lLineNo,
|
|
VARIANT_BOOL *pfWereEqual);
|
|
STDMETHODIMP LogExpectedHr (LONG hrExpected );
|
|
STDMETHODIMP LogReceivedHr (LONG hrReceived,
|
|
BSTR bstrFileName,
|
|
LONG lLineNo);
|
|
STDMETHODIMP ResetModErrors (void);
|
|
STDMETHODIMP ResetModWarnings (void);
|
|
STDMETHODIMP ResetCaseErrors (void);
|
|
STDMETHODIMP ResetCaseWarnings (void);
|
|
STDMETHODIMP ResetVarErrors (void);
|
|
STDMETHODIMP ResetVarWarnings (void);
|
|
STDMETHODIMP GetModErrors (LONG *plModErrors);
|
|
STDMETHODIMP GetModWarnings (LONG *plModWarnings);
|
|
STDMETHODIMP GetCaseErrors (LONG *plCaseErrors);
|
|
STDMETHODIMP GetCaseWarnings (LONG *plCaseWarnings);
|
|
STDMETHODIMP GetVarErrors (LONG *plVarErrors);
|
|
STDMETHODIMP GetVarWarnings (LONG *plVarWarnings);
|
|
STDMETHODIMP Increment (void);
|
|
STDMETHODIMP Transmit (BSTR bstrTextString);
|
|
STDMETHODIMP Initialize (void);
|
|
|
|
//
|
|
// IUnknown
|
|
//
|
|
|
|
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject);
|
|
STDMETHODIMP_(DWORD) AddRef(void);
|
|
STDMETHODIMP_(DWORD) Release(void);
|
|
};
|
|
|
|
#endif //#ifndef _QUIKTEST_H_
|