📄 datarecord.cpp
字号:
CString(") ");
bRst = pConn->Execute(sql);
if(!bRst)
throw 0;
sql=CString("create table HPHZ( ")+
CString(" HZ varchar(2) primary key, ")+
CString(" PY varchar(5) ")+
CString(") ");
bRst = pConn->Execute(sql);
if(!bRst)
throw 0;
if(pTxtFile.Open(".\\HPHZ.dat",CFile::modeRead | CFile::typeText))
{
while(pTxtFile.GetPosition()<pTxtFile.GetLength())
{
pTxtFile.ReadString(sql);
bRst = pConn->Execute(sql);
}
pTxtFile.Close();
}
sql=CString("create table WZBK( ")+
CString(" HPHM varchar(12) primary key, ")+
CString(" BKYY varchar(255), ")+
CString(" BKSJ DateTime, ")+
CString(" BKDW varchar(50), ")+
CString(" DEAL varchar(1), ")+
CString(" CLRQ DateTime, ")+
CString(" HPZL varchar(2), ")+
CString(" HPYS BYTE ")+
CString(") ");
bRst = pConn->Execute(sql);
if(!bRst)
throw 0;
sql=CString("create table WZLX( ")+
CString(" WZBH varchar(6) primary key, ")+
CString(" WZMS varchar(100), ")+
CString(" YXJ int ) ");
bRst = pConn->Execute(sql);
if(!bRst)
throw 0;
if(pTxtFile.Open(".\\WZLX.dat",CFile::modeRead | CFile::typeText))
{
while(pTxtFile.GetPosition()<pTxtFile.GetLength())
{
pTxtFile.ReadString(sql);
bRst = pConn->Execute(sql);
}
pTxtFile.Close();
}
sql=CString("create table BKYY( ")+
CString(" BKID AUTOINCREMENT primary key,")+
CString(" BKMS varchar(255) ")+
CString(") ");
bRst = pConn->Execute(sql);
if(!bRst)
throw 0;
sql="insert into bkyy (BKMS) VALUES('未年检车辆')";
pConn->Execute(sql);
sql="insert into bkyy (BKMS) VALUES('违章未处理车辆')";
pConn->Execute(sql);
sql="insert into bkyy( BKMS) VALUES('报废车辆')";
pConn->Execute(sql);
sql="insert into bkyy (BKMS) VALUES('肇事逃逸车辆')";
pConn->Execute(sql);
}catch(...){
try{
if (pConn->IsOpen())
pConn->Close();
}catch(...){
}
try{
if(GetFileAttributes(dbName)!=0xffffffff)
DeleteFile(dbName);
}catch(...){
}
WriteLog("创建纪录数据库失败!",1);
return(-1);
}
WriteLog("新建纪录数据库成功!",0);
return(0);
}
char CDataRecord::InitRecordDB()
{
CString DirName=CfgDir;
int CreateFlag;
switch (GetFileAttributes(DirName))
{
case FILE_ATTRIBUTE_DIRECTORY:
if(GetFileAttributes(DirName+CString(RecordDatabase))==0xffffffff)
{
CreateFlag = RestoreRecordDB();
if(CreateFlag<0)
CreateFlag=CreateRecordDB();
else
{
WriteLog("恢复Record.mdb库成功",0);
}
if(CreateFlag<0)
{
return(CreateFlag);
}
else
{
try
{
CreateFlag=OpenRecordDB();
}
catch(...)
{
WriteLog("打开纪录数据库失败",1);
}
if(CreateFlag<0) return(CreateFlag);
}
}
else
{
CreateFlag = CompactRecordDB();
if(CreateFlag<0)
{
CreateFlag = RestoreRecordDB();
if (CreateFlag>=0)
WriteLog("恢复Record.mdb库成功",0);
}
if(CreateFlag<0)
CreateFlag = CreateRecordDB();
if(CreateFlag<0)
{
return(CreateFlag);
}
else
{
try
{
CreateFlag=OpenRecordDB();
}
catch(...)
{
WriteLog("打开纪录数据库失败",1);
}
if(CreateFlag<0) return(CreateFlag);
}
if(CreateFlag<0) return(CreateFlag);
}
break;
default: //Exit Other Attribute File
try{
DeleteFile(DirName);
}
catch (...) {
}
if (!CreateDirectory(DirName,NULL))
return(-1);
CreateFlag = RestoreRecordDB();
if(CreateFlag<0)
CreateFlag = CreateRecordDB();
else
{
WriteLog("恢复Record.mdb库成功",0);
}
if(CreateFlag<0)
return(CreateFlag);
else
{
try
{
CreateFlag=OpenRecordDB();
}
catch(...)
{
WriteLog("打开纪录数据库失败",1);
}
if(CreateFlag<0) return(CreateFlag);
}
break;
}
return(0);
}
char CDataRecord::OpenRecordDB()
{
char CreateFlag=0;
CString dbName;
dbName=CString(CfgDir)+CString(RecordDatabase);
switch(GetFileAttributes(dbName))
{
case FILE_ATTRIBUTE_ARCHIVE :
case FILE_ATTRIBUTE_NORMAL:
break;
default:
//CreateDelayDB();
return(-1);
}
try{
if (pRst->IsOpen()) pRst->Close();
if (pConn->IsOpen()) pConn->Close();
}
catch(...)
{
WriteLog("关闭纪录数据库连接失败!",1);
}
if( !(pConn->ConDB(dbName) ))
{
WriteLog("连接纪录数据库失败!",1);
CreateFlag=-1;
}
if(CreateFlag>=0)
{
try
{
pRst->SetConnection(pConn);
}
catch(...)
{
WriteLog("打开纪录数据库失败!",1);
CreateFlag=-1;
}
}
if (CreateFlag<0)
{
try{
if (pRst->IsOpen()) pRst->Close();
if (pConn->IsOpen()) pConn->Close();
}
catch(...)
{
WriteLog("关闭纪录数据库失败!",1);
}
CreateFlag = RepairRecordDB();
if(CreateFlag<0)
return CreateFlag;
//如果修复成功
try
{
pConn->ConDB(dbName);
}catch(...)
{
WriteLog("打开纪录数据库失败!",1);
return(-1);
}
if(CreateFlag>=0)
{
try {
pRst->SetConnection(pConn);
}catch(...){
WriteLog("打开纪录数据库失败!",1);
CreateFlag=-1;
}
}
}
return(0);
}
char CDataRecord::RepairRecordDB()
{
char CreateFlag=0;
// DisableWatchDog();
CreateFlag = pConn->CompactDatabase(CString(CfgDir)+CString(RecordDatabase));
// EnableWatchDog();
return CreateFlag;
}
char CDataRecord::RestoreRecordDB()
{
char CreateFlag=-1;
CString ss,sDir;
TCHAR pDIR[3];
int len = m_strHardDisk.GetLength();
// if (len<6) return -1; //没有其他磁盘
for(int i=3;i<len;i+=3)
{
pDIR[0] = m_strHardDisk.GetAt(i);
pDIR[1] = ':';
pDIR[2] = '\0';
ss = pDIR;
sDir = ss+"\\"+CString(RecordSavePath);
ss = sDir+CString(RecordDatabase);
// DisableWatchDog();
try
{
CopyFile(ss, CString(CfgDir)+CString(RecordDatabase), FALSE);
CreateFlag = OpenRecordDB();
if(CreateFlag>=0)
{
// EnableWatchDog();
return CreateFlag;
}
}
catch(...)
{
}
// EnableWatchDog();
}
return -1;
}
char CDataRecord::CompactRecordDB()
{
char CreateFlag=0;
// DisableWatchDog();
CreateFlag = pConn->CompactDatabase(CString(CfgDir)+CString(RecordDatabase));
// EnableWatchDog();
return CreateFlag;
return 0;
}
char CDataRecord::BackupRecordDB()
{
CString ss,sDir;
TCHAR pDIR[3];
int len = m_strHardDisk.GetLength();
// if (len<6) return -1; //没有其他磁盘
for(int i=3;i<len;i+=3)
{
pDIR[0] = m_strHardDisk.GetAt(i);
pDIR[1] = ':';
pDIR[2] = '\0';
ss = pDIR;
sDir = ss+"/"+CString(RecordSavePath);
ss = sDir+CString(RecordDatabase);
switch(GetFileAttributes(sDir)){
case FILE_ATTRIBUTE_DIRECTORY:
break;
default:
try{
DeleteFile(sDir);
}
catch (...) {
}
if(!CreateDirectory(sDir,NULL))
{
WriteLog("创建备份目录失败-"+sDir,0);
return -1;
}
}
// DisableWatchDog();
try
{
CopyFile(CString(CfgDir)+CString(RecordDatabase), ss, FALSE);
}
catch(...)
{
}
// EnableWatchDog();
}
return 0;
}
UINT BackupRecordThread(PVOID pParam)
{
// MyData->BackupRecordDB();
return 0;
}
CString CDataRecord::GetSaveDirectory()
{
CString sDirectory=m_strDisk+"\\"+RecordSavePath;
return sDirectory;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -