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

📄 drvinfo.h

📁 一个介绍Odbc的详细例子
💻 H
字号:
// DrvInfo.h : header file
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1998 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.

class CMyPage : public CPropertyPage
{
protected:

	// SQLGetInfo helpers
	static CString      SQLGetInfoString(UWORD);
	static UWORD        SQLGetInfoShort(UWORD);
	static UDWORD       SQLGetInfoLong(UWORD);

	// formatting helpers
	static void         ZeroIsNoneLong(CString&,UWORD);
	static void         ZeroIsNoneShort(CString&,UWORD);
	static void         YIsYes(CString&,UWORD);
	static void         YIsSupported(CString&,UWORD);

	// the database we're showing info about
	static CDatabase*   m_pDatabase;

	// the shared image list for check marks in CListCtrl
	static CImageList*  m_pImageList;

	// the number of active property page objects using
	// the shared imagelist
	static int          m_nClients;

public:

	CMyPage(CDatabase* pDatabase, UINT nIdTemplate);

	virtual ~CMyPage();

	virtual void OnNewDSN() = 0;

	virtual void DumpToFile(CStdioFile&) = 0;
};


/////////////////////////////////////////////////////////////////////////////
// CDriverInfo property page

class CDriverInfo : public CMyPage
{
	DECLARE_DYNCREATE(CDriverInfo)

// Construction
public:
	CDriverInfo(CDatabase* pDatabase = NULL);
	~CDriverInfo();

	void DumpToFile(CStdioFile&);

// Dialog Data
	//{{AFX_DATA(CDriverInfo)
	enum { IDD = IDD_DRIVERINFO };
	CString m_strSqlUserName;
	CString m_strSqlServerName;
	CString m_strSqlDbmsName;
	CString m_strSqlDbmsVer;
	CString m_strSqlDriverName;
	CString m_strSqlDriverOdbcVer;
	CString m_strSqlDriverVer;
	CString m_strSqlOdbcVer;
	CString m_strSqlOdbcApiConformance;
	CString m_strSqlOdbcSagCliConformance;
	CString m_strSqlOdbcSqlConformance;
	CString m_strSqlOdbcSqlOptIef;
	CString m_strSqlActiveConnections;
	CString m_strSqlActiveStatements;
	CString m_strSqlMultResultSets;
	CString m_strSqlFileUsage;
	CString m_strSqlDataSourceReadOnly;
	CString m_strSqlDataSourceName;
	CString m_strSqlAccessibleProcedures;
	CString m_strSqlAccessibleTables;
	CString m_strSqlDatabaseName;
	//}}AFX_DATA


// Overrides
	// ClassWizard generate virtual function overrides
	//{{AFX_VIRTUAL(CDriverInfo)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CDriverInfo)
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
public:
	void OnNewDSN();

	DECLARE_MESSAGE_MAP()

};

/////////////////////////////////////////////////////////////////////////////
// CFunctions dialog

class CFunctions : public CMyPage
{
	DECLARE_DYNCREATE(CFunctions)

	static char*    m_szFunctions[];
	static char*    m_szSqlFunctions[];
	static char*    m_szSqlCategories[];
	static SDWORD   m_dwConversionsMasks[];
	static SDWORD   m_dwNumericMasks[];
	static SDWORD   m_dwStringsMasks[];
	static SDWORD   m_dwSystemsMasks[];
	static SDWORD   m_dwTimeDatesMasks[];

// Construction
public:
	CFunctions(CDatabase* pDatabase = NULL);
	~CFunctions();

	void DumpToFile(CStdioFile&);

// Dialog Data
	//{{AFX_DATA(CFunctions)
	enum { IDD = IDD_FUNCTIONS };
	CListCtrl   m_SqlListControl;
	CListCtrl   m_ApiListControl;
	//}}AFX_DATA


// Overrides
	// ClassWizard generate virtual function overrides
	//{{AFX_VIRTUAL(CFunctions)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CFunctions)
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
public:
	void OnNewDSN(void);

	DECLARE_MESSAGE_MAP()

};

/////////////////////////////////////////////////////////////////////////////
// CSupportedSQL dialog

class CSupportedSQL : public CMyPage
{
	DECLARE_DYNCREATE(CSupportedSQL)

// Construction
public:
	CSupportedSQL(CDatabase* pDatabase = NULL);
	~CSupportedSQL();

	void DumpToFile(CStdioFile&);

// Dialog Data
	//{{AFX_DATA(CSupportedSQL)
	enum { IDD = IDD_SUPPORTED_SQL };
	BOOL    m_bSqlAlterTableAdd;
	BOOL    m_bSqlAlterTableDrop;
	CString m_strSqlExpressionsInOrderby;
	CString m_strSqlGroupBy;
	CString m_strSqlOrderByColumnsInSelect;
	CString m_strSqlOuterJoins;
	BOOL    m_bSqlSqComparison;
	BOOL    m_bSqlSqCorrelatedSubqueries;
	BOOL    m_bSqlSqExists;
	BOOL    m_bSqlSqIn;
	BOOL    m_bSqlSqQuantified;
	BOOL    m_bSqlUUnion;
	BOOL    m_bSqlUUnionAll;
	CString m_strSqlColumnAlias;
	CString m_strSqlLikeEscapeClause;
	BOOL    m_bSqlPsPositionedDelete;
	BOOL    m_bSqlPsPositionedUpdate;
	BOOL    m_bSqlPsSelectForUpdate;
	CString m_strSqlCorrelationName;
	//}}AFX_DATA


// Overrides
	// ClassWizard generate virtual function overrides
	//{{AFX_VIRTUAL(CSupportedSQL)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CSupportedSQL)
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
public:
	void OnNewDSN();

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
// CDataTypes dialog

struct TYPEDATA
{
	CString     strTypeName;
	int         nSqlType;
	int         nPrecision;
	CString     strLiteralPrefix;
	CString     strLiteralSuffix;
	CString     strCreateParams;
	int         nNullable;
	BOOL        bCaseSensitive;
	int         nSearchable;
	int         nUnsigned;
	BOOL        bMoney;
	int         nAutoIncrement;
	int         nMinimumScale;
	int         nMaximumScale;
	TYPEDATA*   pNext;
};

class CDataTypes : public CMyPage
{
	DECLARE_DYNCREATE(CDataTypes)

// Construction
public:
	CDataTypes(CDatabase* pDatabase = NULL);
	~CDataTypes();

	void DumpToFile(CStdioFile&);

	CGetTypeInfo*   m_pGetTypeInfo;

	TYPEDATA*       m_pTypeDataHead;
	TYPEDATA*       m_pTypeDataTail;

// Dialog Data
	//{{AFX_DATA(CDataTypes)
	enum { IDD = IDD_DATA_TYPES };
	CListBox    m_lbConversions;
	CListBox    m_lbDataTypes;
	CString m_strSqlType;
	CString m_strPrecision;
	CString m_strPrefixSuffix;
	CString m_strCreateParams;
	CString m_strNullable;
	CString m_strCaseSensitive;
	CString m_strSearchable;
	CString m_strMoney;
	CString m_strUnsigned;
	CString m_strAutoIncrement;
	CString m_strMaximumScale;
	CString m_strMinimumScale;
	//}}AFX_DATA


// Overrides
	// ClassWizard generate virtual function overrides
	//{{AFX_VIRTUAL(CDataTypes)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CDataTypes)
	virtual BOOL OnInitDialog();
	afx_msg void OnSelchangeDataTypeList();
	//}}AFX_MSG

	// helpers
	void InsertTypeData(TYPEDATA*);
	void ShowConversions(SDWORD);
	void PrintConversions(BOOL&,SDWORD,SDWORD,CString&,const CString&,CStdioFile&);

public:
	void OnNewDSN();

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
// CIdentifiers dialog

class CIdentifiers : public CMyPage
{
	DECLARE_DYNCREATE(CIdentifiers)

// Construction
public:
	CIdentifiers(CDatabase* pDatabase = NULL);
	~CIdentifiers();

	void DumpToFile(CStdioFile&);

// Dialog Data
	//{{AFX_DATA(CIdentifiers)
	enum { IDD = IDD_IDENTIFIERS };
	CListBox    m_lbDriverKeywords;
	CListBox    m_lbOdbcKeywords;
	CString m_strSqlIdentifierCase;
	CString m_strSqlIdentifierQuoteChar;
	CString m_strSqlOwnerTerm;
	CString m_strSqlProcedureTerm;
	CString m_strSqlQualifierLocation;
	CString m_strSqlQualifierNameSeparator;
	CString m_strSqlQualifierTerm;
	CString m_strSqlQuotedIdentifierCase;
	CString m_strSqlSearchPatternEscape;
	CString m_strSqlTableTerm;
	CString m_strSqlSpecialCharacters;
	//}}AFX_DATA


// Overrides
	// ClassWizard generate virtual function overrides
	//{{AFX_VIRTUAL(CIdentifiers)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CIdentifiers)
	virtual BOOL OnInitDialog();
	//}}AFX_MSG

public:
	void OnNewDSN();

	DECLARE_MESSAGE_MAP()

};

/////////////////////////////////////////////////////////////////////////////
// CLimits dialog

class CLimits : public CMyPage
{
	DECLARE_DYNCREATE(CLimits)

// Construction
public:
	CLimits(CDatabase* pDatabase = NULL);
	~CLimits();

	void DumpToFile(CStdioFile&);

// Dialog Data
	//{{AFX_DATA(CLimits)
	enum { IDD = IDD_LIMITS };
	CListCtrl   m_lcSqlTimedateDiffIntervals;
	CListCtrl   m_lcSqlTimedateAddIntervals;
	CString m_strSqlMaxBinaryLiteralLen;
	CString m_strSqlMaxCharLiteralLen;
	CString m_strSqlMaxColumnNameLen;
	CString m_strSqlMaxColumnsInGroupBy;
	CString m_strSqlMaxColumnsInIndex;
	CString m_strSqlMaxColumnsInOrderBy;
	CString m_strSqlMaxColumnsInSelect;
	CString m_strSqlMaxColumnsInTable;
	CString m_strSqlMaxCursorNameLen;
	CString m_strSqlMaxIndexSize;
	CString m_strSqlMaxOwnerNameLen;
	CString m_strSqlMaxProcedureNameLen;
	CString m_strSqlMaxQualifierNameLen;
	CString m_strSqlMaxRowSize;
	CString m_strSqlMaxRowSizeIncludesLong;
	CString m_strSqlMaxStatementLen;
	CString m_strSqlMaxTableNameLen;
	CString m_strSqlMaxTablesInSelect;
	CString m_strSqlMaxUserNameLen;
	//}}AFX_DATA


// Overrides
	// ClassWizard generate virtual function overrides
	//{{AFX_VIRTUAL(CLimits)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CLimits)
	virtual BOOL OnInitDialog();
	//}}AFX_MSG

	static UWORD    m_nIntervalMasks[];
	static char     *m_szIntervalNames[];

public:
	void OnNewDSN();

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
// CMisc1 dialog

class CMisc1 : public CMyPage
{
	DECLARE_DYNCREATE(CMisc1)

// Construction
public:
	CMisc1(CDatabase* pDatabase = NULL);
	~CMisc1();

	void DumpToFile(CStdioFile&);

// Dialog Data
	//{{AFX_DATA(CMisc1)
	enum { IDD = IDD_MISC1 };
	CString m_strSqlTxnCapable;
	CString m_strSqlCursorCommitBehavior;
	CString m_strSqlCursorRollbackBehavior;
	BOOL    m_bSqlTxnReadCommitted;
	BOOL    m_bSqlTxnReadUncommitted;
	BOOL    m_bSqlTxnRepeatableRead;
	BOOL    m_bSqlTxnSerializable;
	CString m_strSqlDefaultTxnIsolation;
	CString m_strSqlMultipleActiveTxn;
	BOOL    m_bSqlBpClose;
	BOOL    m_bSqlBpDelete;
	BOOL    m_bSqlBpDrop;
	BOOL    m_bSqlBpOtherHstmt;
	BOOL    m_bSqlBpScroll;
	BOOL    m_bSqlBpTransaction;
	BOOL    m_bSqlBpUpdate;
	BOOL    m_bSqlLckExclusive;
	BOOL    m_bSqlLckNoChange;
	BOOL    m_bSqlLckUnlock;
	BOOL    m_bSqlSsAdditions;
	BOOL    m_bSqlSsDeletions;
	BOOL    m_bSqlSsUpdates;
	//}}AFX_DATA


// Overrides
	// ClassWizard generate virtual function overrides
	//{{AFX_VIRTUAL(CMisc1)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CMisc1)
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
public:
	void OnNewDSN();

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
// CMisc2 dialog

class CMisc2 : public CMyPage
{
	DECLARE_DYNCREATE(CMisc2)

// Construction
public:
	CMisc2(CDatabase* pDatabase = NULL);
	~CMisc2();

	void DumpToFile(CStdioFile&);

// Dialog Data
	//{{AFX_DATA(CMisc2)
	enum { IDD = IDD_MISC2 };
	BOOL    m_bSqlOuDmlStatements;
	BOOL    m_bSqlOuIndexDefinition;
	BOOL    m_bSqlOuPrivilegeDefinition;
	BOOL    m_bSqlOuProcedureInvocation;
	BOOL    m_bSqlOuTableDefinition;
	BOOL    m_bSqlQuDmlStatements;
	BOOL    m_bSqlQuIndexDefinition;
	BOOL    m_bSqlQuPrivilegeDefinition;
	BOOL    m_bSqlQuProcedureInvocation;
	BOOL    m_bSqlQuTableDefinition;
	BOOL    m_bSqlSoDynamic;
	BOOL    m_bSqlSoForwardOnly;
	BOOL    m_bSqlSoKeysetDriven;
	BOOL    m_bSqlSoMixed;
	BOOL    m_bSqlSoStatic;
	BOOL    m_bSqlSccoLock;
	BOOL    m_bSqlSccoOptRowver;
	BOOL    m_bSqlSccoOptValues;
	BOOL    m_bSqlSccoReadOnly;
	BOOL    m_bSqlPosAdd;
	BOOL    m_bSqlPosDelete;
	BOOL    m_bSqlPosPosition;
	BOOL    m_bSqlPosRefresh;
	BOOL    m_bSqlPosUpdate;
	BOOL    m_bSqlFdFetchAbsolute;
	BOOL    m_bSqlFdFetchBookmark;
	BOOL    m_bSqlFdFetchFirst;
	BOOL    m_bSqlFdFetchLast;
	BOOL    m_bSqlFdFetchNext;
	BOOL    m_bSqlFdFetchPrior;
	BOOL    m_bSqlFdFetchRelative;
	BOOL    m_bSqlGdAnyColumn;
	BOOL    m_bSqlGdAnyOrder;
	BOOL    m_bSqlGdBlock;
	BOOL    m_bSqlGdBound;
	CString m_strSqlConcatNullBehavior;
	CString m_strSqlNeedLongDataLen;
	CString m_strSqlNonNullableColumns;
	CString m_strSqlNullCollation;
	CString m_strSqlProcedures;
	CString m_strSqlRowUpdates;
	//}}AFX_DATA


// Overrides
	// ClassWizard generate virtual function overrides
	//{{AFX_VIRTUAL(CMisc2)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CMisc2)
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
public:
	void OnNewDSN();

	DECLARE_MESSAGE_MAP()

};

⌨️ 快捷键说明

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