home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / mfc / database / odbcinfo / drvinfo.h < prev    next >
C/C++ Source or Header  |  1998-03-26  |  14KB  |  563 lines

  1. // DrvInfo.h : header file
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. class CMyPage : public CPropertyPage
  14. {
  15. protected:
  16.  
  17.     // SQLGetInfo helpers
  18.     static CString      SQLGetInfoString(UWORD);
  19.     static UWORD        SQLGetInfoShort(UWORD);
  20.     static UDWORD       SQLGetInfoLong(UWORD);
  21.  
  22.     // formatting helpers
  23.     static void         ZeroIsNoneLong(CString&,UWORD);
  24.     static void         ZeroIsNoneShort(CString&,UWORD);
  25.     static void         YIsYes(CString&,UWORD);
  26.     static void         YIsSupported(CString&,UWORD);
  27.  
  28.     // the database we're showing info about
  29.     static CDatabase*   m_pDatabase;
  30.  
  31.     // the shared image list for check marks in CListCtrl
  32.     static CImageList*  m_pImageList;
  33.  
  34.     // the number of active property page objects using
  35.     // the shared imagelist
  36.     static int          m_nClients;
  37.  
  38. public:
  39.  
  40.     CMyPage(CDatabase* pDatabase, UINT nIdTemplate);
  41.  
  42.     virtual ~CMyPage();
  43.  
  44.     virtual void OnNewDSN() = 0;
  45.  
  46.     virtual void DumpToFile(CStdioFile&) = 0;
  47. };
  48.  
  49.  
  50. /////////////////////////////////////////////////////////////////////////////
  51. // CDriverInfo property page
  52.  
  53. class CDriverInfo : public CMyPage
  54. {
  55.     DECLARE_DYNCREATE(CDriverInfo)
  56.  
  57. // Construction
  58. public:
  59.     CDriverInfo(CDatabase* pDatabase = NULL);
  60.     ~CDriverInfo();
  61.  
  62.     void DumpToFile(CStdioFile&);
  63.  
  64. // Dialog Data
  65.     //{{AFX_DATA(CDriverInfo)
  66.     enum { IDD = IDD_DRIVERINFO };
  67.     CString m_strSqlUserName;
  68.     CString m_strSqlServerName;
  69.     CString m_strSqlDbmsName;
  70.     CString m_strSqlDbmsVer;
  71.     CString m_strSqlDriverName;
  72.     CString m_strSqlDriverOdbcVer;
  73.     CString m_strSqlDriverVer;
  74.     CString m_strSqlOdbcVer;
  75.     CString m_strSqlOdbcApiConformance;
  76.     CString m_strSqlOdbcSagCliConformance;
  77.     CString m_strSqlOdbcSqlConformance;
  78.     CString m_strSqlOdbcSqlOptIef;
  79.     CString m_strSqlActiveConnections;
  80.     CString m_strSqlActiveStatements;
  81.     CString m_strSqlMultResultSets;
  82.     CString m_strSqlFileUsage;
  83.     CString m_strSqlDataSourceReadOnly;
  84.     CString m_strSqlDataSourceName;
  85.     CString m_strSqlAccessibleProcedures;
  86.     CString m_strSqlAccessibleTables;
  87.     CString m_strSqlDatabaseName;
  88.     //}}AFX_DATA
  89.  
  90.  
  91. // Overrides
  92.     // ClassWizard generate virtual function overrides
  93.     //{{AFX_VIRTUAL(CDriverInfo)
  94.     protected:
  95.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  96.     //}}AFX_VIRTUAL
  97.  
  98. // Implementation
  99. protected:
  100.     // Generated message map functions
  101.     //{{AFX_MSG(CDriverInfo)
  102.     virtual BOOL OnInitDialog();
  103.     //}}AFX_MSG
  104. public:
  105.     void OnNewDSN();
  106.  
  107.     DECLARE_MESSAGE_MAP()
  108.  
  109. };
  110.  
  111. /////////////////////////////////////////////////////////////////////////////
  112. // CFunctions dialog
  113.  
  114. class CFunctions : public CMyPage
  115. {
  116.     DECLARE_DYNCREATE(CFunctions)
  117.  
  118.     static char*    m_szFunctions[];
  119.     static char*    m_szSqlFunctions[];
  120.     static char*    m_szSqlCategories[];
  121.     static SDWORD   m_dwConversionsMasks[];
  122.     static SDWORD   m_dwNumericMasks[];
  123.     static SDWORD   m_dwStringsMasks[];
  124.     static SDWORD   m_dwSystemsMasks[];
  125.     static SDWORD   m_dwTimeDatesMasks[];
  126.  
  127. // Construction
  128. public:
  129.     CFunctions(CDatabase* pDatabase = NULL);
  130.     ~CFunctions();
  131.  
  132.     void DumpToFile(CStdioFile&);
  133.  
  134. // Dialog Data
  135.     //{{AFX_DATA(CFunctions)
  136.     enum { IDD = IDD_FUNCTIONS };
  137.     CListCtrl   m_SqlListControl;
  138.     CListCtrl   m_ApiListControl;
  139.     //}}AFX_DATA
  140.  
  141.  
  142. // Overrides
  143.     // ClassWizard generate virtual function overrides
  144.     //{{AFX_VIRTUAL(CFunctions)
  145.     protected:
  146.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  147.     //}}AFX_VIRTUAL
  148.  
  149. // Implementation
  150. protected:
  151.     // Generated message map functions
  152.     //{{AFX_MSG(CFunctions)
  153.     virtual BOOL OnInitDialog();
  154.     //}}AFX_MSG
  155. public:
  156.     void OnNewDSN(void);
  157.  
  158.     DECLARE_MESSAGE_MAP()
  159.  
  160. };
  161.  
  162. /////////////////////////////////////////////////////////////////////////////
  163. // CSupportedSQL dialog
  164.  
  165. class CSupportedSQL : public CMyPage
  166. {
  167.     DECLARE_DYNCREATE(CSupportedSQL)
  168.  
  169. // Construction
  170. public:
  171.     CSupportedSQL(CDatabase* pDatabase = NULL);
  172.     ~CSupportedSQL();
  173.  
  174.     void DumpToFile(CStdioFile&);
  175.  
  176. // Dialog Data
  177.     //{{AFX_DATA(CSupportedSQL)
  178.     enum { IDD = IDD_SUPPORTED_SQL };
  179.     BOOL    m_bSqlAlterTableAdd;
  180.     BOOL    m_bSqlAlterTableDrop;
  181.     CString m_strSqlExpressionsInOrderby;
  182.     CString m_strSqlGroupBy;
  183.     CString m_strSqlOrderByColumnsInSelect;
  184.     CString m_strSqlOuterJoins;
  185.     BOOL    m_bSqlSqComparison;
  186.     BOOL    m_bSqlSqCorrelatedSubqueries;
  187.     BOOL    m_bSqlSqExists;
  188.     BOOL    m_bSqlSqIn;
  189.     BOOL    m_bSqlSqQuantified;
  190.     BOOL    m_bSqlUUnion;
  191.     BOOL    m_bSqlUUnionAll;
  192.     CString m_strSqlColumnAlias;
  193.     CString m_strSqlLikeEscapeClause;
  194.     BOOL    m_bSqlPsPositionedDelete;
  195.     BOOL    m_bSqlPsPositionedUpdate;
  196.     BOOL    m_bSqlPsSelectForUpdate;
  197.     CString m_strSqlCorrelationName;
  198.     //}}AFX_DATA
  199.  
  200.  
  201. // Overrides
  202.     // ClassWizard generate virtual function overrides
  203.     //{{AFX_VIRTUAL(CSupportedSQL)
  204.     protected:
  205.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  206.     //}}AFX_VIRTUAL
  207.  
  208. // Implementation
  209. protected:
  210.     // Generated message map functions
  211.     //{{AFX_MSG(CSupportedSQL)
  212.     virtual BOOL OnInitDialog();
  213.     //}}AFX_MSG
  214. public:
  215.     void OnNewDSN();
  216.  
  217.     DECLARE_MESSAGE_MAP()
  218. };
  219.  
  220. /////////////////////////////////////////////////////////////////////////////
  221. // CDataTypes dialog
  222.  
  223. struct TYPEDATA
  224. {
  225.     CString     strTypeName;
  226.     int         nSqlType;
  227.     int         nPrecision;
  228.     CString     strLiteralPrefix;
  229.     CString     strLiteralSuffix;
  230.     CString     strCreateParams;
  231.     int         nNullable;
  232.     BOOL        bCaseSensitive;
  233.     int         nSearchable;
  234.     int         nUnsigned;
  235.     BOOL        bMoney;
  236.     int         nAutoIncrement;
  237.     int         nMinimumScale;
  238.     int         nMaximumScale;
  239.     TYPEDATA*   pNext;
  240. };
  241.  
  242. class CDataTypes : public CMyPage
  243. {
  244.     DECLARE_DYNCREATE(CDataTypes)
  245.  
  246. // Construction
  247. public:
  248.     CDataTypes(CDatabase* pDatabase = NULL);
  249.     ~CDataTypes();
  250.  
  251.     void DumpToFile(CStdioFile&);
  252.  
  253.     CGetTypeInfo*   m_pGetTypeInfo;
  254.  
  255.     TYPEDATA*       m_pTypeDataHead;
  256.     TYPEDATA*       m_pTypeDataTail;
  257.  
  258. // Dialog Data
  259.     //{{AFX_DATA(CDataTypes)
  260.     enum { IDD = IDD_DATA_TYPES };
  261.     CListBox    m_lbConversions;
  262.     CListBox    m_lbDataTypes;
  263.     CString m_strSqlType;
  264.     CString m_strPrecision;
  265.     CString m_strPrefixSuffix;
  266.     CString m_strCreateParams;
  267.     CString m_strNullable;
  268.     CString m_strCaseSensitive;
  269.     CString m_strSearchable;
  270.     CString m_strMoney;
  271.     CString m_strUnsigned;
  272.     CString m_strAutoIncrement;
  273.     CString m_strMaximumScale;
  274.     CString m_strMinimumScale;
  275.     //}}AFX_DATA
  276.  
  277.  
  278. // Overrides
  279.     // ClassWizard generate virtual function overrides
  280.     //{{AFX_VIRTUAL(CDataTypes)
  281.     protected:
  282.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  283.     //}}AFX_VIRTUAL
  284.  
  285. // Implementation
  286. protected:
  287.     // Generated message map functions
  288.     //{{AFX_MSG(CDataTypes)
  289.     virtual BOOL OnInitDialog();
  290.     afx_msg void OnSelchangeDataTypeList();
  291.     //}}AFX_MSG
  292.  
  293.     // helpers
  294.     void InsertTypeData(TYPEDATA*);
  295.     void ShowConversions(SDWORD);
  296.     void PrintConversions(BOOL&,SDWORD,SDWORD,CString&,const CString&,CStdioFile&);
  297.  
  298. public:
  299.     void OnNewDSN();
  300.  
  301.     DECLARE_MESSAGE_MAP()
  302. };
  303.  
  304. /////////////////////////////////////////////////////////////////////////////
  305. // CIdentifiers dialog
  306.  
  307. class CIdentifiers : public CMyPage
  308. {
  309.     DECLARE_DYNCREATE(CIdentifiers)
  310.  
  311. // Construction
  312. public:
  313.     CIdentifiers(CDatabase* pDatabase = NULL);
  314.     ~CIdentifiers();
  315.  
  316.     void DumpToFile(CStdioFile&);
  317.  
  318. // Dialog Data
  319.     //{{AFX_DATA(CIdentifiers)
  320.     enum { IDD = IDD_IDENTIFIERS };
  321.     CListBox    m_lbDriverKeywords;
  322.     CListBox    m_lbOdbcKeywords;
  323.     CString m_strSqlIdentifierCase;
  324.     CString m_strSqlIdentifierQuoteChar;
  325.     CString m_strSqlOwnerTerm;
  326.     CString m_strSqlProcedureTerm;
  327.     CString m_strSqlQualifierLocation;
  328.     CString m_strSqlQualifierNameSeparator;
  329.     CString m_strSqlQualifierTerm;
  330.     CString m_strSqlQuotedIdentifierCase;
  331.     CString m_strSqlSearchPatternEscape;
  332.     CString m_strSqlTableTerm;
  333.     CString m_strSqlSpecialCharacters;
  334.     //}}AFX_DATA
  335.  
  336.  
  337. // Overrides
  338.     // ClassWizard generate virtual function overrides
  339.     //{{AFX_VIRTUAL(CIdentifiers)
  340.     protected:
  341.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  342.     //}}AFX_VIRTUAL
  343.  
  344. // Implementation
  345. protected:
  346.     // Generated message map functions
  347.     //{{AFX_MSG(CIdentifiers)
  348.     virtual BOOL OnInitDialog();
  349.     //}}AFX_MSG
  350.  
  351. public:
  352.     void OnNewDSN();
  353.  
  354.     DECLARE_MESSAGE_MAP()
  355.  
  356. };
  357.  
  358. /////////////////////////////////////////////////////////////////////////////
  359. // CLimits dialog
  360.  
  361. class CLimits : public CMyPage
  362. {
  363.     DECLARE_DYNCREATE(CLimits)
  364.  
  365. // Construction
  366. public:
  367.     CLimits(CDatabase* pDatabase = NULL);
  368.     ~CLimits();
  369.  
  370.     void DumpToFile(CStdioFile&);
  371.  
  372. // Dialog Data
  373.     //{{AFX_DATA(CLimits)
  374.     enum { IDD = IDD_LIMITS };
  375.     CListCtrl   m_lcSqlTimedateDiffIntervals;
  376.     CListCtrl   m_lcSqlTimedateAddIntervals;
  377.     CString m_strSqlMaxBinaryLiteralLen;
  378.     CString m_strSqlMaxCharLiteralLen;
  379.     CString m_strSqlMaxColumnNameLen;
  380.     CString m_strSqlMaxColumnsInGroupBy;
  381.     CString m_strSqlMaxColumnsInIndex;
  382.     CString m_strSqlMaxColumnsInOrderBy;
  383.     CString m_strSqlMaxColumnsInSelect;
  384.     CString m_strSqlMaxColumnsInTable;
  385.     CString m_strSqlMaxCursorNameLen;
  386.     CString m_strSqlMaxIndexSize;
  387.     CString m_strSqlMaxOwnerNameLen;
  388.     CString m_strSqlMaxProcedureNameLen;
  389.     CString m_strSqlMaxQualifierNameLen;
  390.     CString m_strSqlMaxRowSize;
  391.     CString m_strSqlMaxRowSizeIncludesLong;
  392.     CString m_strSqlMaxStatementLen;
  393.     CString m_strSqlMaxTableNameLen;
  394.     CString m_strSqlMaxTablesInSelect;
  395.     CString m_strSqlMaxUserNameLen;
  396.     //}}AFX_DATA
  397.  
  398.  
  399. // Overrides
  400.     // ClassWizard generate virtual function overrides
  401.     //{{AFX_VIRTUAL(CLimits)
  402.     protected:
  403.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  404.     //}}AFX_VIRTUAL
  405.  
  406. // Implementation
  407. protected:
  408.     // Generated message map functions
  409.     //{{AFX_MSG(CLimits)
  410.     virtual BOOL OnInitDialog();
  411.     //}}AFX_MSG
  412.  
  413.     static UWORD    m_nIntervalMasks[];
  414.     static char     *m_szIntervalNames[];
  415.  
  416. public:
  417.     void OnNewDSN();
  418.  
  419.     DECLARE_MESSAGE_MAP()
  420. };
  421.  
  422. /////////////////////////////////////////////////////////////////////////////
  423. // CMisc1 dialog
  424.  
  425. class CMisc1 : public CMyPage
  426. {
  427.     DECLARE_DYNCREATE(CMisc1)
  428.  
  429. // Construction
  430. public:
  431.     CMisc1(CDatabase* pDatabase = NULL);
  432.     ~CMisc1();
  433.  
  434.     void DumpToFile(CStdioFile&);
  435.  
  436. // Dialog Data
  437.     //{{AFX_DATA(CMisc1)
  438.     enum { IDD = IDD_MISC1 };
  439.     CString m_strSqlTxnCapable;
  440.     CString m_strSqlCursorCommitBehavior;
  441.     CString m_strSqlCursorRollbackBehavior;
  442.     BOOL    m_bSqlTxnReadCommitted;
  443.     BOOL    m_bSqlTxnReadUncommitted;
  444.     BOOL    m_bSqlTxnRepeatableRead;
  445.     BOOL    m_bSqlTxnSerializable;
  446.     CString m_strSqlDefaultTxnIsolation;
  447.     CString m_strSqlMultipleActiveTxn;
  448.     BOOL    m_bSqlBpClose;
  449.     BOOL    m_bSqlBpDelete;
  450.     BOOL    m_bSqlBpDrop;
  451.     BOOL    m_bSqlBpOtherHstmt;
  452.     BOOL    m_bSqlBpScroll;
  453.     BOOL    m_bSqlBpTransaction;
  454.     BOOL    m_bSqlBpUpdate;
  455.     BOOL    m_bSqlLckExclusive;
  456.     BOOL    m_bSqlLckNoChange;
  457.     BOOL    m_bSqlLckUnlock;
  458.     BOOL    m_bSqlSsAdditions;
  459.     BOOL    m_bSqlSsDeletions;
  460.     BOOL    m_bSqlSsUpdates;
  461.     //}}AFX_DATA
  462.  
  463.  
  464. // Overrides
  465.     // ClassWizard generate virtual function overrides
  466.     //{{AFX_VIRTUAL(CMisc1)
  467.     protected:
  468.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  469.     //}}AFX_VIRTUAL
  470.  
  471. // Implementation
  472. protected:
  473.     // Generated message map functions
  474.     //{{AFX_MSG(CMisc1)
  475.     virtual BOOL OnInitDialog();
  476.     //}}AFX_MSG
  477. public:
  478.     void OnNewDSN();
  479.  
  480.     DECLARE_MESSAGE_MAP()
  481. };
  482.  
  483. /////////////////////////////////////////////////////////////////////////////
  484. // CMisc2 dialog
  485.  
  486. class CMisc2 : public CMyPage
  487. {
  488.     DECLARE_DYNCREATE(CMisc2)
  489.  
  490. // Construction
  491. public:
  492.     CMisc2(CDatabase* pDatabase = NULL);
  493.     ~CMisc2();
  494.  
  495.     void DumpToFile(CStdioFile&);
  496.  
  497. // Dialog Data
  498.     //{{AFX_DATA(CMisc2)
  499.     enum { IDD = IDD_MISC2 };
  500.     BOOL    m_bSqlOuDmlStatements;
  501.     BOOL    m_bSqlOuIndexDefinition;
  502.     BOOL    m_bSqlOuPrivilegeDefinition;
  503.     BOOL    m_bSqlOuProcedureInvocation;
  504.     BOOL    m_bSqlOuTableDefinition;
  505.     BOOL    m_bSqlQuDmlStatements;
  506.     BOOL    m_bSqlQuIndexDefinition;
  507.     BOOL    m_bSqlQuPrivilegeDefinition;
  508.     BOOL    m_bSqlQuProcedureInvocation;
  509.     BOOL    m_bSqlQuTableDefinition;
  510.     BOOL    m_bSqlSoDynamic;
  511.     BOOL    m_bSqlSoForwardOnly;
  512.     BOOL    m_bSqlSoKeysetDriven;
  513.     BOOL    m_bSqlSoMixed;
  514.     BOOL    m_bSqlSoStatic;
  515.     BOOL    m_bSqlSccoLock;
  516.     BOOL    m_bSqlSccoOptRowver;
  517.     BOOL    m_bSqlSccoOptValues;
  518.     BOOL    m_bSqlSccoReadOnly;
  519.     BOOL    m_bSqlPosAdd;
  520.     BOOL    m_bSqlPosDelete;
  521.     BOOL    m_bSqlPosPosition;
  522.     BOOL    m_bSqlPosRefresh;
  523.     BOOL    m_bSqlPosUpdate;
  524.     BOOL    m_bSqlFdFetchAbsolute;
  525.     BOOL    m_bSqlFdFetchBookmark;
  526.     BOOL    m_bSqlFdFetchFirst;
  527.     BOOL    m_bSqlFdFetchLast;
  528.     BOOL    m_bSqlFdFetchNext;
  529.     BOOL    m_bSqlFdFetchPrior;
  530.     BOOL    m_bSqlFdFetchRelative;
  531.     BOOL    m_bSqlGdAnyColumn;
  532.     BOOL    m_bSqlGdAnyOrder;
  533.     BOOL    m_bSqlGdBlock;
  534.     BOOL    m_bSqlGdBound;
  535.     CString m_strSqlConcatNullBehavior;
  536.     CString m_strSqlNeedLongDataLen;
  537.     CString m_strSqlNonNullableColumns;
  538.     CString m_strSqlNullCollation;
  539.     CString m_strSqlProcedures;
  540.     CString m_strSqlRowUpdates;
  541.     //}}AFX_DATA
  542.  
  543.  
  544. // Overrides
  545.     // ClassWizard generate virtual function overrides
  546.     //{{AFX_VIRTUAL(CMisc2)
  547.     protected:
  548.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  549.     //}}AFX_VIRTUAL
  550.  
  551. // Implementation
  552. protected:
  553.     // Generated message map functions
  554.     //{{AFX_MSG(CMisc2)
  555.     virtual BOOL OnInitDialog();
  556.     //}}AFX_MSG
  557. public:
  558.     void OnNewDSN();
  559.  
  560.     DECLARE_MESSAGE_MAP()
  561.  
  562. };
  563.