| | |
| | | #include <QSqlQuery> |
| | | #include <QDebug> |
| | | #include "mbfileutil.h" |
| | | #include "mbbackupdirop.h" |
| | | #include "mbdateutils.h" |
| | | |
| | | CMBWatchDb::CMBWatchDb() |
| | | { |
| | |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::getTmpFiledSql(QString sql, QString &tmpValue, QString &errInfo) |
| | | bool CMBWatchDb::getFiledValueSql(QString sql, QString &tmpValue, QString tmpFiled, QString &errInfo) |
| | | { |
| | | QMutexLocker locker(&m_mutex); |
| | | |
| | |
| | | } |
| | | while(query.next()) |
| | | { |
| | | tmpValue = query.value("TmpFiled").toString(); |
| | | tmpValue = query.value(tmpFiled).toString(); |
| | | } |
| | | |
| | | query.clear(); |
| | |
| | | "CN_G_ID VARCHAR (128) PRIMARY KEY NOT NULL," |
| | | "CN_S_FILE_NAME VARCHAR (128) NOT NULL," |
| | | "CN_S_NEWFILE_NAME VARCHAR (128)," |
| | | "CN_S_SERVERPATH VARCHAR (128)," |
| | | "CN_S_SERVER_PATH VARCHAR (128)," |
| | | "CN_S_SERVER_FLAG VARCHAR (128)," |
| | | "CN_S_OP_TYPE TEXT (128)," |
| | | "CN_T_CREATE DATE (128)" |
| | | ")").arg(m_backupDirTableName); |
| | |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::insertBackupDirDB(QString opType, QString fileName, QString newFileName, QString svrPath, QString lastMdfTime) |
| | | bool CMBWatchDb::exsitLogDB(QString fileName, bool &bExsit, QString &errInfo) |
| | | { |
| | | QString sql; |
| | | |
| | | sql = QString("SELECT * FROM %1 where CN_S_FILE_NAME='%2'").arg(m_logTableName,fileName); |
| | | |
| | | if(!exsitSql(sql, bExsit, errInfo)) |
| | | return false; |
| | | |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::updateLogDB(QString fileName, QString lastMdfTime, QString &errInfo) |
| | | { |
| | | QMutexLocker locker(&m_mutex); |
| | | |
| | | QString connectionName,sql; |
| | | |
| | | sql = QString("UPDATE %1 SET " |
| | | "CN_T_LAST_MODFIY=':lastmdy'" |
| | | " where CN_S_FILE_NAME=':filename'").arg(m_logTableName); |
| | | |
| | | { |
| | | QSqlDatabase db = openDataBase(); |
| | | connectionName = db.connectionName(); |
| | | |
| | | QSqlQuery queryAdd(db); |
| | | queryAdd.prepare(sql); |
| | | |
| | | queryAdd.bindValue(":lastmdy", lastMdfTime); |
| | | queryAdd.bindValue(":filename", fileName); |
| | | |
| | | |
| | | if(!queryAdd.exec()) |
| | | { |
| | | errInfo = queryAdd.lastError().text(); |
| | | return false; |
| | | } |
| | | } |
| | | closeDataBase(connectionName); |
| | | |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::insertLogDB(QString fileName, QString lastMdfTime, QString &errInfo) |
| | | { |
| | | QMutexLocker locker(&m_mutex); |
| | | |
| | | QString connectionName,sql; |
| | | |
| | | sql = QString("INSERT INTO %1 " |
| | | "(CN_S_FILE_NAME,CN_T_LAST_MODFIY)" |
| | | " VALUES (:filename,:lastmdf)").arg(m_logTableName); |
| | | |
| | | { |
| | | QSqlDatabase db = openDataBase(); |
| | | connectionName = db.connectionName(); |
| | | |
| | | QSqlQuery queryAdd(db); |
| | | queryAdd.prepare(sql); |
| | | |
| | | queryAdd.bindValue(":filename", fileName); |
| | | queryAdd.bindValue(":lastmdf", lastMdfTime); |
| | | |
| | | if(!queryAdd.exec()) |
| | | { |
| | | errInfo = queryAdd.lastError().text(); |
| | | return false; |
| | | } |
| | | } |
| | | closeDataBase(connectionName); |
| | | |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::getLastMdfTimeLogDB(QString fileName, QString &lastMdfTime, QString &errInfo) |
| | | { |
| | | QString sql; |
| | | QString tmpFiled; |
| | | |
| | | tmpFiled = "CN_T_LAST_MODFIY"; |
| | | sql = QString("SELECT * FROM %1 where CN_S_FILE_NAME='%2'").arg(m_logTableName,fileName); |
| | | |
| | | if(!getFiledValueSql(sql, lastMdfTime, tmpFiled,errInfo)) |
| | | return false; |
| | | |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::setLogDB(QString &cmd,bool &bOpDB, QString fileName, QString lastMdfTime, QString &errInfo) |
| | | { |
| | | bOpDB = true; |
| | | |
| | | lastMdfTime = lastMdfTime.trimmed(); |
| | | |
| | | bool bExsit = false; |
| | | |
| | | if( !exsitLogDB(fileName, bExsit, errInfo) ) |
| | | return false; |
| | | |
| | | if( bExsit ){ |
| | | |
| | | QString tmpLastMdfTime; |
| | | if(!getLastMdfTimeLogDB(fileName, tmpLastMdfTime, errInfo)) |
| | | return false; |
| | | |
| | | tmpLastMdfTime = tmpLastMdfTime.trimmed(); |
| | | |
| | | if( tmpLastMdfTime == lastMdfTime ){ |
| | | bOpDB = false; |
| | | return true; |
| | | } |
| | | |
| | | cmd = CMBBackupdirOp::CMD_MODIFY; |
| | | |
| | | if( !updateLogDB(fileName, lastMdfTime,errInfo) ) |
| | | return false; |
| | | |
| | | return true; |
| | | } |
| | | |
| | | cmd = CMBBackupdirOp::CMD_NEW; |
| | | if( !insertLogDB(fileName, lastMdfTime,errInfo) ) |
| | | return false; |
| | | |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::setLogDB(bool &bOpDB, QString fileName, QString lastMdfTime, QString &errInfo) |
| | | { |
| | | QString cmd; |
| | | return setLogDB(cmd,bOpDB, fileName, lastMdfTime, errInfo); |
| | | } |
| | | |
| | | bool CMBWatchDb::insertBackupDirDB(QString opType, QString fileName, QString newFileName, QString svrPath, QString svrFlag, QString &errInfo) |
| | | { |
| | | QMutexLocker locker(&m_mutex); |
| | | |
| | | QString connectionName,sql,id,tCreate; |
| | | |
| | | id = CMBFileUtil::genGuid(); |
| | | tCreate = CMBDateUtils::getCurTime(); |
| | | |
| | | sql = QString("INSERT INTO %1 " |
| | | "(CN_G_ID,CN_S_FILE_NAME,CN_S_NEWFILE_NAME,CN_S_SERVER_PATH,CN_S_SERVER_FLAG,CN_S_OP_TYPE,CN_T_CREATE)" |
| | | " VALUES (:id,:filename,:newfilename,:svrpath,:svrflag,:optype,:tcreate)").arg(m_backupDirTableName); |
| | | |
| | | { |
| | | QSqlDatabase db = openDataBase(); |
| | | connectionName = db.connectionName(); |
| | | |
| | | QSqlQuery queryAdd(db); |
| | | queryAdd.prepare(sql); |
| | | |
| | | queryAdd.bindValue(":id", id); |
| | | queryAdd.bindValue(":filename", fileName); |
| | | queryAdd.bindValue(":newfilename", newFileName); |
| | | queryAdd.bindValue(":svrflag", svrFlag); |
| | | queryAdd.bindValue(":svrpath", svrPath); |
| | | queryAdd.bindValue(":optype", opType); |
| | | queryAdd.bindValue(":tcreate", tCreate); |
| | | |
| | | if(!queryAdd.exec()) |
| | | { |
| | | errInfo = queryAdd.lastError().text(); |
| | | return false; |
| | | } |
| | | } |
| | | closeDataBase(connectionName); |
| | | |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::exsitFileNameBackupDirDB(QString fileName, bool &bExsit, QString &errInfo) |
| | | { |
| | | QString sql; |
| | | |
| | | sql = QString("SELECT * FROM %1 where CN_S_FILE_NAME='%2'").arg(m_backupDirTableName,fileName); |
| | | |
| | | if(!exsitSql(sql, bExsit, errInfo)) |
| | | return false; |
| | | |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::delBackupDirDB(QString fileName, QString &errInfo) |
| | | { |
| | | QString sql; |
| | | |
| | | sql = QString("delete from %1 where CN_S_FILE_NAME='%2'").arg(m_backupDirTableName,fileName); |
| | | |
| | | if(!execSql(sql,errInfo)) |
| | | return false; |
| | | |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::renameBakcupDirDB(QString opType, QString fileName, QString newFileName, QString svrPath, QString svrFlag, QString &errInfo) |
| | | { |
| | | return insertBackupDirDB(opType, fileName, newFileName, svrPath, svrFlag, errInfo); |
| | | } |
| | | |
| | | bool CMBWatchDb::newBakcupDirDB(QString opType, QString fileName, QString newFileName, QString svrPath, QString svrFlag, QString &errInfo) |
| | | { |
| | | return insertBackupDirDB(opType, fileName, newFileName, svrPath, svrFlag, errInfo); |
| | | } |
| | | |
| | | bool CMBWatchDb::mdyBakcupDirDB(QString opType, QString fileName, QString newFileName, QString svrPath, QString svrFlag, QString &errInfo) |
| | | { |
| | | bool bExsit = false; |
| | | if(!exsitFileNameBackupDirDB(fileName, bExsit, errInfo)) |
| | | return false; |
| | | if( bExsit ) |
| | | return true; |
| | | return insertBackupDirDB(opType, fileName, newFileName, svrPath, svrFlag, errInfo); |
| | | } |
| | | |
| | | bool CMBWatchDb::setBackupDirDB(QString opType, QString fileName, QString newFileName, QString svrPath, QString lastMdfTime, QString svrFlag, QString &errInfo) |
| | | { |
| | | opType = opType.trimmed(); |
| | | if( opType == CMBBackupdirOp::CMD_NEW ){ |
| | | return newBakcupDirDB(opType, fileName, newFileName, svrPath, svrFlag, errInfo); |
| | | }else if( opType == CMBBackupdirOp::CMD_MODIFY ){ |
| | | return mdyBakcupDirDB(opType, fileName, newFileName, svrPath, svrFlag, errInfo); |
| | | }else if( opType == CMBBackupdirOp::CMD_DELETE ){ |
| | | return delBackupDirDB(fileName, errInfo); |
| | | }else if( opType == CMBBackupdirOp::CMD_RENAME ){ |
| | | return renameBakcupDirDB(opType, fileName, newFileName, svrPath, svrFlag, errInfo); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | bool CMBWatchDb::adjDB(QString opType, QString fileName, QString newFileName, QString svrPath, QString lastMdfTime,QString svrFlag,QString &errInfo) |
| | | { |
| | | bool bOpDB = false; |
| | | |
| | | if( !setLogDB(bOpDB,fileName, lastMdfTime, errInfo) ) |
| | | return false; |
| | | |
| | | if(!bOpDB) |
| | | return true; |
| | | |
| | | // 写 backup dir db |
| | | if( !setBackupDirDB(opType, fileName,newFileName, svrPath,lastMdfTime, svrFlag, errInfo) ) |
| | | return false; |
| | | |
| | | return true; |
| | | } |
| | | |
| | | // 自已决定,操作类型 |
| | | bool CMBWatchDb::insertBackupDirDB(QString fileName, QString newFileName, |
| | | QString svrPath, QString lastMdfTime) |
| | | bool CMBWatchDb::adjDB(QString fileName, QString newFileName, |
| | | QString svrPath, QString lastMdfTime,QString svrFlag,QString &errInfo) |
| | | { |
| | | QString opType; |
| | | bool bOpDB = false; |
| | | |
| | | if( !setLogDB(opType,bOpDB,fileName, lastMdfTime, errInfo) ) |
| | | return false; |
| | | |
| | | if(!bOpDB) |
| | | return true; |
| | | |
| | | //opType = CMBBackupdirOp::CMD_DELETE; |
| | | // 写 backup dir db |
| | | if( !setBackupDirDB(opType, fileName,newFileName, svrPath,lastMdfTime, svrFlag, errInfo) ) |
| | | return false; |
| | | |
| | | return true; |
| | | } |