OpenAccessdatabase.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #pragma once
  2. #define ERROR_OPENING_DATABASE -2
  3. #pragma warning(disable : 4995)
  4. class COpenAccessdatabase
  5. {
  6. public:
  7. COpenAccessdatabase(void);
  8. ~COpenAccessdatabase(void);
  9. BOOL ValidDB(CString csPath, BOOL bUpgrade);
  10. };
  11. class CDaoTableDefEx : public CDaoTableDef
  12. {
  13. public:
  14. CDaoTableDefEx(CDaoDatabase* pDatabase)
  15. :CDaoTableDef(pDatabase)
  16. {
  17. }
  18. BOOL CreateIndex(BOOL bPrimaryKey, CString csField)
  19. {
  20. try
  21. {
  22. CDaoIndexInfo IndexInfo;
  23. CDaoIndexFieldInfo IndexFieldInfo[1];
  24. IndexFieldInfo[0].m_strName = csField;
  25. IndexFieldInfo[0].m_bDescending = TRUE;
  26. IndexInfo.m_strName = csField;
  27. IndexInfo.m_pFieldInfos = IndexFieldInfo;
  28. IndexInfo.m_nFields = 1;
  29. IndexInfo.m_bPrimary = bPrimaryKey;
  30. IndexInfo.m_bUnique = FALSE;
  31. IndexInfo.m_bIgnoreNulls = FALSE;
  32. IndexInfo.m_bRequired = FALSE;
  33. CDaoTableDef::CreateIndex( IndexInfo );
  34. }
  35. catch(CDaoException *e)
  36. {
  37. ASSERT(FALSE);
  38. e->Delete();
  39. return FALSE;
  40. }
  41. return TRUE;
  42. }
  43. BOOL CreateField(LPCTSTR lpszName, short nType, long lSize, long lAttributes = 0, CString csDefault = _T(""))
  44. {
  45. try
  46. {
  47. CDaoFieldInfo fieldinfo;
  48. // Initialize everything so only correct properties will be set
  49. fieldinfo.m_strName = lpszName;
  50. fieldinfo.m_nType = nType;
  51. fieldinfo.m_lSize = lSize;
  52. fieldinfo.m_lAttributes = lAttributes;
  53. fieldinfo.m_nOrdinalPosition = 0;
  54. fieldinfo.m_bRequired = FALSE;
  55. fieldinfo.m_bAllowZeroLength = FALSE;
  56. fieldinfo.m_lCollatingOrder = 0;
  57. fieldinfo.m_strDefaultValue = csDefault;
  58. CDaoTableDef::CreateField(fieldinfo);
  59. return TRUE;
  60. }
  61. catch(CDaoException *e)
  62. {
  63. e->Delete();
  64. ASSERT(FALSE);
  65. }
  66. return FALSE;
  67. }
  68. };