📄 database.cpp
字号:
#include "stdafx.h"
#include "Database.h"
CDatabase g_DB;
CDatabase::CDatabase(){
BOOL bResult1 = CeMountDBVol(&m_guid1,TEXT("\\Storage Card\\Station.cdb"),OPEN_ALWAYS);//只能在硬件上运行.
bool bResult = bResult1 ? true : false;
ASSERT(bResult);
m_hDB1 = CeOpenDatabaseEx(&m_guid1,&m_oid1,TEXT("Station"),0,0,NULL);
if(m_hDB1 == INVALID_HANDLE_VALUE){
CEDBASEINFO ced;
ZeroMemory(&ced, sizeof(CEDBASEINFO));
ced.dwSize = sizeof(CEDBASEINFO);
ced.dwFlags = CEDB_VALIDNAME;
wcscpy(ced.szDbaseName, TEXT("Station"));
m_oid1 = CeCreateDatabaseEx(&m_guid1,&ced);
if(m_oid1) ASSERT(true);
else ASSERT(false);
m_hDB1 = CeOpenDatabaseEx(&m_guid1,&m_oid1,TEXT("Station"),0,0,NULL);
if(m_hDB1 != INVALID_HANDLE_VALUE) ASSERT(true);
else ASSERT(false);
}
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB1, CEDB_SEEK_BEGINNING,0,&dwIndex);
bResult1 = CeMountDBVol(&m_guid2,TEXT("\\Storage Card\\Data.cdb"),OPEN_ALWAYS);//只能在硬件上运行.
bResult = bResult1 ? true : false;
ASSERT(bResult);
m_hDB2 = CeOpenDatabaseEx(&m_guid2,&m_oid2,TEXT("Data"),0,0,NULL);
if(m_hDB2 == INVALID_HANDLE_VALUE){
CEDBASEINFO ced;
ZeroMemory(&ced, sizeof(CEDBASEINFO));
ced.dwSize = sizeof(CEDBASEINFO);
ced.dwFlags = CEDB_VALIDNAME;
wcscpy(ced.szDbaseName, TEXT("Data"));
m_oid2 = CeCreateDatabaseEx(&m_guid2,&ced);
if(m_oid2) ASSERT(true);
else ASSERT(false);
m_hDB2 = CeOpenDatabaseEx(&m_guid2,&m_oid2,TEXT("Data"),0,0,NULL);
if(m_hDB2 != INVALID_HANDLE_VALUE) ASSERT(true);
else ASSERT(false);
}
oid = CeSeekDatabase(m_hDB2, CEDB_SEEK_BEGINNING,0,&dwIndex);
bResult1 = CeMountDBVol(&m_guid3,TEXT("\\Storage Card\\Send.cdb"),OPEN_ALWAYS);//只能在硬件上运行.
bResult = bResult1 ? true : false;
ASSERT(bResult);
m_hDB3 = CeOpenDatabaseEx(&m_guid3,&m_oid3,TEXT("Send"),0,0,NULL);
if(m_hDB3 == INVALID_HANDLE_VALUE){
CEDBASEINFO ced;
ZeroMemory(&ced, sizeof(CEDBASEINFO));
ced.dwSize = sizeof(CEDBASEINFO);
ced.dwFlags = CEDB_VALIDNAME;
wcscpy(ced.szDbaseName, TEXT("Send"));
m_oid3 = CeCreateDatabaseEx(&m_guid3,&ced);
if(m_oid3) ASSERT(true);
else ASSERT(false);
m_hDB3 = CeOpenDatabaseEx(&m_guid3,&m_oid3,TEXT("Send"),0,0,NULL);
if(m_hDB3 != INVALID_HANDLE_VALUE) ASSERT(true);
else ASSERT(false);
}
oid = CeSeekDatabase(m_hDB3, CEDB_SEEK_BEGINNING,0,&dwIndex);
bResult1 = CeMountDBVol(&m_guid4,TEXT("\\Storage Card\\PassWord.cdb"),OPEN_ALWAYS);//只能在硬件上运行.
bResult = bResult1 ? true : false;
ASSERT(bResult);
m_hDB4 = CeOpenDatabaseEx(&m_guid4,&m_oid4,TEXT("PassWord"),0,0,NULL);
if(m_hDB4 == INVALID_HANDLE_VALUE){
CEDBASEINFO ced;
ZeroMemory(&ced, sizeof(CEDBASEINFO));
ced.dwSize = sizeof(CEDBASEINFO);
ced.dwFlags = CEDB_VALIDNAME;
wcscpy(ced.szDbaseName, TEXT("PassWord"));
m_oid4 = CeCreateDatabaseEx(&m_guid4,&ced);
if(m_oid4) ASSERT(true);
else ASSERT(false);
m_hDB4 = CeOpenDatabaseEx(&m_guid4,&m_oid4,TEXT("PassWord"),0,0,NULL);
if(m_hDB4 != INVALID_HANDLE_VALUE) ASSERT(true);
else ASSERT(false);
}
oid = CeSeekDatabase(m_hDB3, CEDB_SEEK_BEGINNING,0,&dwIndex);
}
CDatabase::~CDatabase(){
BOOL bResult = CeUnmountDBVol(&m_guid1);
bResult = CeUnmountDBVol(&m_guid2);
bResult = CeUnmountDBVol(&m_guid3);
bResult = CeUnmountDBVol(&m_guid4);
ASSERT(bResult);
}
bool CDatabase::SeekStationDB(DWORD dwSeekType, DWORD dwValue){//查找一条记录。
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB1, dwSeekType, dwValue, &dwIndex);
if(oid) return true;
else return false;
}
bool CDatabase::ReadStationRecord(CRecordStation &record){//读取一条记录.
BYTE *prgBuffer = NULL;
DWORD dwBuffer = 0;
WORD wPropId = 0;
CEOID oid = CeReadRecordPropsEx(m_hDB1,CEDB_ALLOWREALLOC,&wPropId,NULL,&prgBuffer,&dwBuffer,NULL);
if(oid){record.PropValToRecord((CEPROPVAL *) prgBuffer);
delete prgBuffer;return true;}
else{delete prgBuffer;return false;}
}
bool CDatabase::AddStationRecord(CRecordStation record){//增加一条记录.
CEPROPVAL *prgPropVal = record.NewPropVal();
CEOID oid = CeWriteRecordProps(m_hDB1,0,14,prgPropVal);
record.DeletePropVal(prgPropVal);
if(m_oid1) return true;
else return false;
}
bool CDatabase::UpdateStationRecord(CRecordStation record){//更新一条记录.
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB1, CEDB_SEEK_CURRENT, 0, &dwIndex);
CEPROPVAL *prgPropVal = record.NewPropVal();
oid = CeWriteRecordProps(m_hDB1,oid,14,prgPropVal);
record.DeletePropVal(prgPropVal);
CeFlushDBVol (&m_guid1);//永久存贮数据.
if(m_oid1) return true;
else return false;
}
bool CDatabase::DeleteStationRecord(int nIndex){//删除一条记录.
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB1, CEDB_SEEK_CURRENT, nIndex, &dwIndex);
ASSERT(oid);
BOOL bResult = CeDeleteRecord(m_hDB1, oid);
CeFlushDBVol (&m_guid1);//永久存贮数据.
return bResult ? true : false;
}
bool CDatabase::SeekDataDB(DWORD dwSeekType, DWORD dwValue){//查找一条记录。
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB2, dwSeekType, dwValue, &dwIndex);
if(oid) return true;
else return false;
}
bool CDatabase::ReadDataRecord(CRecordData &record){//读取一条记录.
BYTE *prgBuffer = NULL;
DWORD dwBuffer = 0;
WORD wPropId = 0;
CEOID oid = CeReadRecordPropsEx(m_hDB2,CEDB_ALLOWREALLOC,&wPropId,NULL,&prgBuffer,&dwBuffer,NULL);
if(oid){record.PropValToRecord((CEPROPVAL *) prgBuffer);
delete prgBuffer;return true;}
else{delete prgBuffer;return false;}
}
bool CDatabase::AddDataRecord(CRecordData record){//增加一条记录.
CEPROPVAL *prgPropVal = record.NewPropVal();
CEOID oid = CeWriteRecordProps(m_hDB2,0,5,prgPropVal);
record.DeletePropVal(prgPropVal);
CeFlushDBVol (&m_guid2);//永久存贮数据.
if(m_oid2) return true;
else return false;
}
bool CDatabase::UpdateDataRecord(CRecordData record){//更新一条记录.
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB2, CEDB_SEEK_CURRENT, 0, &dwIndex);
CEPROPVAL *prgPropVal = record.NewPropVal();
oid = CeWriteRecordProps(m_hDB2,oid,5,prgPropVal);
record.DeletePropVal(prgPropVal);
CeFlushDBVol (&m_guid2);//永久存贮数据.
if(m_oid2) return true;
else return false;
}
bool CDatabase::DeleteDataRecord(int nIndex){//删除一条记录.
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB2, CEDB_SEEK_CURRENT, nIndex, &dwIndex);
ASSERT(oid);
BOOL bResult = CeDeleteRecord(m_hDB2, oid);
CeFlushDBVol (&m_guid2);//永久存贮数据.
return bResult ? true : false;
}
bool CDatabase::SeekSendDB(DWORD dwSeekType, DWORD dwValue){//查找一条记录。
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB3, dwSeekType, dwValue, &dwIndex);
if(oid) return true;
else return false;
}
bool CDatabase::ReadSendRecord(CRecordSend &record){//读取一条记录.
BYTE *prgBuffer = NULL;
DWORD dwBuffer = 0;
WORD wPropId = 0;
CEOID oid = CeReadRecordPropsEx(m_hDB3,CEDB_ALLOWREALLOC,&wPropId,NULL,&prgBuffer,&dwBuffer,NULL);
if(oid){record.PropValToRecord((CEPROPVAL *) prgBuffer);
delete prgBuffer;return true;}
else{delete prgBuffer;return false;}
}
bool CDatabase::AddSendRecord(CRecordSend record){//增加一条记录.
CEPROPVAL *prgPropVal = record.NewPropVal();
CEOID oid = CeWriteRecordProps(m_hDB3,0,5,prgPropVal);
record.DeletePropVal(prgPropVal);
CeFlushDBVol (&m_guid3);//永久存贮数据.
if(m_oid3) return true;
else return false;
}
bool CDatabase::UpdateSendRecord(CRecordSend record){//更新一条记录.
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB3, CEDB_SEEK_CURRENT, 0, &dwIndex);
CEPROPVAL *prgPropVal = record.NewPropVal();
oid = CeWriteRecordProps(m_hDB3,oid,5,prgPropVal);
record.DeletePropVal(prgPropVal);
CeFlushDBVol (&m_guid3);//永久存贮数据.
if(m_oid3) return true;
else return false;
}
bool CDatabase::DeleteSendRecord(int nIndex){//删除一条记录.
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB3, CEDB_SEEK_CURRENT, nIndex, &dwIndex);
ASSERT(oid);
BOOL bResult = CeDeleteRecord(m_hDB3, oid);
CeFlushDBVol (&m_guid3);//永久存贮数据.
return bResult ? true : false;
}
bool CDatabase::SeekPassWordDB(DWORD dwSeekType, DWORD dwValue){//查找一条记录。
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB4, dwSeekType, dwValue, &dwIndex);
if(oid) return true;
else return false;
}
bool CDatabase::ReadPassWordRecord(CRecordPassWord &record){//读取一条记录.
BYTE *prgBuffer = NULL;
DWORD dwBuffer = 0;
WORD wPropId = 0;
CEOID oid = CeReadRecordPropsEx(m_hDB4,CEDB_ALLOWREALLOC,&wPropId,NULL,&prgBuffer,&dwBuffer,NULL);
if(oid){record.PropValToRecord((CEPROPVAL *) prgBuffer);
delete prgBuffer;return true;}
else{delete prgBuffer;return false;}
}
bool CDatabase::AddPassWordRecord(CRecordPassWord record){//增加一条记录.
CEPROPVAL *prgPropVal = record.NewPropVal();
CEOID oid = CeWriteRecordProps(m_hDB4,0,2,prgPropVal);
record.DeletePropVal(prgPropVal);
CeFlushDBVol (&m_guid4);//永久存贮数据.
if(m_oid4) return true;
else return false;
}
bool CDatabase::UpdatePassWordRecord(CRecordPassWord record){//更新一条记录.
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB4, CEDB_SEEK_CURRENT, 0, &dwIndex);
CEPROPVAL *prgPropVal = record.NewPropVal();
oid = CeWriteRecordProps(m_hDB4,oid,2,prgPropVal);
record.DeletePropVal(prgPropVal);
CeFlushDBVol (&m_guid4);//永久存贮数据.
if(m_oid4) return true;
else return false;
}
bool CDatabase::DeletePassWordRecord(int nIndex){//删除一条记录.
DWORD dwIndex;
CEOID oid = CeSeekDatabase(m_hDB4, CEDB_SEEK_CURRENT, nIndex, &dwIndex);
ASSERT(oid);
BOOL bResult = CeDeleteRecord(m_hDB4, oid);
CeFlushDBVol (&m_guid4);//永久存贮数据.
return bResult ? true : false;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -