www.pudn.com > StreamDBTest.rar > SysEDB.h
#ifndef _SYS_EDB_H_ #define _SYS_EDB_H_ #define EDB #include#include #include #define DB_NAME TEXT("BlackList") #define DB_FILE_NAME TEXT("SmsBList.dat") #define STREAM_DB_NAME TEXT("StreamDB") typedef struct ITEMData { CEOID ceoid; TCHAR name[32]; TCHAR number[32]; ITEMData() { ceoid = 0; name[0] = 0; number[0] = 0; } }ITEMData; UINT GetCurrAppFolder(TCHAR* appFolder); // 创建存储拨号前缀的数据库 //BOOL CreateDB(LPTSTR apsDBVolPath); class CSysDB { public: CSysDB(BOOL bSetPrimarykey = FALSE , LONG iSeekOrder = CEDB_SEEK_BEGINNING); ~CSysDB(); DWORD AddDBItem(ITEMData &item); BOOL ModifyAnPrefixItem(ITEMData &item); BOOL DelAnPrefixItem(ITEMData &item); DWORD GetAllPrefixItem(std::vector &vecPrefixItem); DWORD GetPrefixItemCount(); BOOL IsPrefixItemExist(ITEMData &item); ////////////////////////////////////////////////////////////////////////// BOOL CreateDBEx(LPTSTR apsDBVolPath); BOOL OpenDB(TCHAR *szwDBName); void CloseDBHandle(); // 结束数据库操作 ////////////////////////////////////////////////////////////////////////// //Stream DB BOOL CreateStreamDB(LPTSTR apsDBVolPath); BOOL OpenStreamDB(TCHAR *szwDBName); DWORD AddStreamDBItem(ITEMData &item); DWORD AddStreamDBItem(void *pData , int cbSize); DWORD GetAllStreamItem(std::vector &vecPrefixItem); BOOL ModifyAnStreamDBItem(ITEMData &item); DWORD GetDBItemCount(); CEOID BeginRead(CEOID *pOid); void* ReadNextRecord(CEOID *pOid , void *pData); private: //BOOL Initial(); DWORD GetMaxPrefixOrderID(); public: private: HANDLE m_hDB; //数据库句柄 BOOL m_bInitial; // 是否已经初始化 CEGUID m_ceGuidDB; // 打开的数据库卷的GUID UINT m_dwMaxPrefixOrderID; UINT m_iSeekOrder; BOOL m_bSetPrimaryKey; }; #endif //_SYS_EDB_H_