drvinfo.h
上传用户:jsxglz
上传日期:2007-01-03
资源大小:117k
文件大小:14k
源码类别:

SQL Server

开发平台:

Visual C++

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