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_