MapRecordSet.h
上传用户:bjslfz
上传日期:2022-07-25
资源大小:4430k
文件大小:2k
源码类别:

文件操作

开发平台:

C/C++

  1. /************************************************************
  2.   文件名: MapRecordSet.h
  3.   
  4.   作者:   谢婧       Version : 1.0          Date: 2008/05/26
  5.   
  6.   类描述: 对Shp对象的属性数据记录集(DBF数据)的管理
  7.   
  8.   邮件地址:xiejing0707@163.com
  9. ***********************************************************/
  10. #ifndef _MAP_RECORDSET_H_
  11. #define _MAP_RECORDSET_H_
  12. #include "dbfFile.h"
  13. #include "MapTableDesc.h"
  14. #define MAX_CACH_SIZE 100   //最大缓存记录数
  15. class CMapFields;
  16. //记录集移动的位置
  17. typedef enum {
  18. BookmarkCurrent,
  19. BookmarkFirst,
  20. BookmarkLast
  21. } RECORDSTART;
  22. class CMapRecordSet {
  23. public:
  24.     CMapRecordSet();
  25. ~CMapRecordSet();
  26. //ATTRIBUTE
  27. public:
  28. long GetRecordCount();
  29. CMapFields* GetFields(long sIndex);
  30. CMapTableDesc* GetTableDesc();
  31. BOOL GetBOF();
  32. BOOL GetEOF();
  33. int  GetCacheSize();
  34. DBF_HEADER m_Header;          //存储DBF文件头
  35.     BOOL SetCacheSize(int& CacheSize);   
  36. //opeeration
  37. public:
  38. BOOL openDBF(CString& csFileName);
  39. void MoveFirst();
  40. void MoveLast();
  41. void MoveNext();
  42. void MovePrev();
  43. BOOL Move(int iNumRecords , RECORDSTART Start );
  44. void ReadRecord(unsigned long lRecordID);
  45. CMapTableDesc  m_TableDesc;
  46. CArray<CMapFields*,CMapFields*> m_Fields; //记录集缓冲区
  47. CFile fDbf; 
  48. unsigned long iCursorPos;                //游标当前位置
  49. void Clear();
  50. private:
  51. int m_CacheSize;
  52. BOOL bBOF,bEOF;
  53. private:
  54.  
  55.  BOOL  m_bDbfOpen;             //数据库文件是否打开  
  56.  
  57. };
  58. //extern static void SwapWord( int length, void * wordP );
  59. #endif //_MAP_RECORDSET_H_