#include "StdAfx.h"
|
#include "MBWatchDBMgr.h"
|
|
|
|
CMBWatchDBConnect::CMBWatchDBConnect()
|
{
|
m_nAddRef = 0;
|
m_bOpenDB = FALSE;
|
m_strDBFile = _T( "" );
|
m_strLogin = _T("");
|
m_strServerID = _T("");
|
}
|
|
CMBWatchDBConnect::~CMBWatchDBConnect()
|
{
|
|
}
|
|
// CSTKDBConnect member functions
|
void CMBWatchDBConnect::AddRef()
|
{
|
m_nAddRef++;
|
CString strLog;
|
strLog.Format(_T("AddRef :%d"),m_nAddRef);
|
//CStrFileUtils::WriteDBErrToFile( strLog);
|
}
|
void CMBWatchDBConnect::Release()
|
{
|
m_nAddRef--;
|
CString strLog;
|
strLog.Format(_T("Release AddRef :%d"),m_nAddRef);
|
//CStrFileUtils::WriteDBErrToFile( strLog);
|
if(m_nAddRef < 1 )
|
{
|
if( CloseDB() )
|
{
|
strLog.Format(_T("Delete CMBWatchDBConnect"));
|
//CStrFileUtils::WriteDBErrToFile( strLog);
|
delete this;
|
}
|
}
|
}
|
BOOL CMBWatchDBConnect::OpenDB( CString strLogin,CString strPassword, CString strServerID, BOOL bCheckFile,BOOL &bFirstDB )
|
{
|
bFirstDB = TRUE;
|
if ( strLogin.IsEmpty() || strServerID.IsEmpty() )
|
return FALSE;
|
CloseDB();
|
m_nAddRef = 0;
|
CString strPathName, strFileName;
|
//CString strAccessPathName;
|
CString strTemplateDBFile;
|
CString strDBPassword;
|
BOOL bExistFile = FALSE;
|
|
strPathName = CStrFileUtils::GetCurModuleDir() +_T("\\Users");
|
if ( !CStrFileUtils::IsDirExit( strPathName ) )
|
{
|
if ( !::CreateDirectory( strPathName, NULL ) )
|
return FALSE;
|
}
|
strPathName = strPathName + _T( "\\" ) + strLogin;
|
if ( !CStrFileUtils::IsDirExit( strPathName ) )
|
{
|
if ( !::CreateDirectory( strPathName , NULL ) )
|
return FALSE;
|
}
|
strFileName.Format( _T("%s\\%s_mb_watch.db"), strPathName, strServerID );
|
bExistFile = CStrFileUtils::IsExist( strFileName );
|
if ( bCheckFile && !bExistFile )
|
return FALSE;
|
strTemplateDBFile = GetTemplateDBFile( );
|
if ( strTemplateDBFile.IsEmpty() )
|
return FALSE;
|
if ( !bExistFile )
|
{
|
if( !CopyFile( strTemplateDBFile, strFileName, FALSE ) )
|
return FALSE;
|
}
|
else
|
bFirstDB = FALSE;
|
if ( !Open( strFileName ,strPassword ) )
|
return FALSE;
|
AddRef();
|
m_strLogin = strLogin;
|
m_strServerID = strServerID;
|
m_strDBFile = strFileName;
|
m_bOpenDB = TRUE;
|
return TRUE;
|
}
|
BOOL CMBWatchDBConnect::CloseDB()
|
{
|
if ( IsDBOpen() )
|
{
|
//Close();
|
m_bOpenDB = FALSE;
|
m_strDBFile = _T( "" );
|
m_strLogin = _T("");
|
m_strServerID = _T("");
|
return TRUE;
|
}
|
|
return FALSE;
|
}
|
|
BOOL CMBWatchDBConnect::IsThisDB( CString strLogin, CString strServerID )
|
{
|
if ( strLogin.CompareNoCase( m_strLogin ) == 0
|
&& strServerID.CompareNoCase( m_strServerID ) == 0 )
|
{
|
return TRUE;
|
}
|
|
return FALSE;
|
}
|
|
CString CMBWatchDBConnect::GetTemplateDBFile( )
|
{
|
CString strPathName;
|
CString strTemplateDBFile;
|
|
strPathName = CStrFileUtils::GetCurModuleDir() + _T( "\\Data" );
|
if ( !CStrFileUtils::IsDirExit( strPathName ) )
|
{
|
if ( !::CreateDirectory( strPathName, NULL ) )
|
return _T("");
|
}
|
strTemplateDBFile = strPathName + _T("\\mb_watch.db");
|
return strTemplateDBFile;
|
}
|
|
|
///////////////////////////////////////////////////////////
|
CMBWatchDBMgr::CMBWatchDBMgr(void)
|
{
|
m_strLogin = _T("");
|
m_strServerID = _T("");
|
m_bIsCloseDB = TRUE;
|
m_pDBConnect = NULL;
|
}
|
|
|
CMBWatchDBMgr::~CMBWatchDBMgr(void)
|
{
|
}
|
|
|
// CSTKNetDiskDBMgr member functions
|
BOOL CMBWatchDBMgr::Logined( CString strLogin, CString strPassword, CString strServerID, BOOL &bFirstDB, BOOL bCheckFile )
|
{
|
if ( strLogin.IsEmpty() || strServerID.IsEmpty() )
|
return FALSE;
|
if ( m_pDBConnect && m_pDBConnect->IsThisDB( strLogin, strServerID ) )
|
{
|
if( !m_pDBConnect->IsDBOpen())
|
{
|
CleanDBConnect( );
|
m_pDBConnect = NULL;
|
}
|
}
|
if( !m_pDBConnect)
|
{
|
CMBWatchDBConnect *pDBConnect = new CMBWatchDBConnect();
|
try
|
{
|
if ( !pDBConnect->OpenDB( strLogin,strPassword, strServerID,bCheckFile, bFirstDB ) )
|
{
|
delete pDBConnect;
|
pDBConnect = NULL;
|
return false;
|
}
|
}
|
catch ( ... )
|
{
|
return false;
|
}
|
m_pDBConnect = pDBConnect;
|
int dwVersion = 0;
|
//if( !bFirstDB)
|
{
|
GetDBVersion(dwVersion);
|
if(dwVersion < VER_MOBOXDB)
|
{
|
if( UpdateNewDBTableInfo(dwVersion))
|
{
|
dwVersion = VER_MOBOXDB;
|
SetDBVersion( dwVersion );
|
}
|
}
|
}
|
|
}
|
|
m_bIsCloseDB = FALSE;
|
m_arBatchSql.RemoveAll();
|
return TRUE;
|
}
|
BOOL CMBWatchDBMgr::SetDBVersion( int dwVersion )
|
{
|
UpdatePropStringData(CLASS_SYSTEM,_T( "DBVersion" ),dwVersion,_T( "" ),_T( "" ));
|
return TRUE;
|
}
|
BOOL CMBWatchDBMgr::GetDBVersion( int &dwVersion )
|
{
|
dwVersion = 0;
|
CString strPropValue;
|
CString strPropExtValue;
|
GetPropStringData(CLASS_SYSTEM,_T( "DBVersion" ),dwVersion,strPropValue,strPropExtValue);
|
return TRUE;
|
}
|
BOOL CMBWatchDBMgr::UpdateNewDBTableInfo(int nVer )
|
{
|
CDBRecord ARecordSet;
|
int nValue = 0 ;
|
int nCount = 0;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
if(nVer < 101101)
|
{
|
CString strSQL = _T( "SELECT count(*) FROM sqlite_master WHERE type='table' AND name='TN_ND_UPDATE_FILECMD'" );
|
try
|
{
|
ARecordSet.Close( );
|
ARecordSet.Open( pDBConnect,strSQL );
|
while ( S_OK == ARecordSet.MoveNext() )
|
{
|
ARecordSet.GetValue( 1, nValue );
|
nCount = nValue;
|
break;
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
pDBConnect->Release();
|
strErrInfo = _T("CSTKNetDiskDBMgr::UpdateNewDBTableInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
return FALSE;
|
}
|
if(nCount < 1)
|
{
|
strSQL = _T( "CREATE TABLE TN_ND_UPDATE_FILECMD\
|
(\
|
CN_G_ID TEXT DEFAULT \"''\",\
|
CN_G_DOC_ID TEXT DEFAULT \"''\",\
|
CN_S_FILE_PATH TEXT DEFAULT \"''\",\
|
CN_S_PARAM_VALUE TEXT DEFAULT \"''\",\
|
CN_N_DMS SMALLINT DEFAULT \"0\",\
|
CN_T_CREATE DATE DEFAULT \"''\",\
|
CN_N_STATE SMALLINT DEFAULT \"0\",\
|
CN_S_ERR TEXT DEFAULT \"''\", \
|
CN_N_EXCCOUNT INTEGER DEFAULT \"0\",\
|
PRIMARY KEY (CN_G_ID) \
|
)" );
|
try
|
{
|
CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::UpdateNewDBTableInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
}
|
nCount = 0;
|
strSQL = _T( "SELECT count(*) FROM sqlite_master WHERE type='table' AND name='TN_ND_LASTOPERATE_DOC'" );
|
try
|
{
|
ARecordSet.Close( );
|
ARecordSet.Open( pDBConnect,strSQL );
|
while ( S_OK == ARecordSet.MoveNext() )
|
{
|
ARecordSet.GetValue( 1, nValue );
|
nCount = nValue;
|
break;
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
pDBConnect->Release();
|
strErrInfo = _T("CSTKNetDiskDBMgr::UpdateNewDBTableInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
return FALSE;
|
}
|
if(nCount < 1)
|
{
|
strSQL = _T( "CREATE TABLE TN_ND_LASTOPERATE_DOC\
|
(\
|
CN_G_ID TEXT DEFAULT \"''\",\
|
CN_G_CATALOG_ID TEXT DEFAULT \"''\",\
|
CN_G_CABINET_ID TEXT DEFAULT \"''\",\
|
CN_N_CATALOG_TYPE SMALLINT DEFAULT \"0\",\
|
CN_S_CATALOG_NAME TEXT DEFAULT \"''\",\
|
CN_T_OPERATE DATE DEFAULT \"''\",\
|
CN_S_NAME TEXT DEFAULT \"''\",\
|
CN_S_PATH TEXT DEFAULT \"'0'\",\
|
CN_N_OP_TYPE SMALLINT DEFAULT \"0\",\
|
PRIMARY KEY (CN_G_ID) \
|
)" );
|
try
|
{
|
CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::UpdateNewDBTableInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
}
|
else
|
{
|
strSQL = _T( "ALTER TABLE TN_ND_LASTOPERATE_DOC ADD COLUMN CN_S_CATALOG_NAME TEXT DEFAULT \"''\"" );
|
try
|
{
|
CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::UpdateNewDBTableInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
}
|
}
|
if(nVer < VER_MOBOXDB)
|
{
|
nCount = 0;
|
CString strSQL = _T( "SELECT count(*) FROM sqlite_master WHERE type='table' AND name='TN_ND_UPLOAD_FILEID'" );
|
try
|
{
|
ARecordSet.Close( );
|
ARecordSet.Open( pDBConnect,strSQL );
|
while ( S_OK == ARecordSet.MoveNext() )
|
{
|
ARecordSet.GetValue( 1, nValue );
|
nCount = nValue;
|
break;
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
pDBConnect->Release();
|
strErrInfo = _T("CSTKNetDiskDBMgr::UpdateNewDBTableInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
return FALSE;
|
}
|
if(nCount < 1)
|
{
|
strSQL = _T( "CREATE TABLE TN_ND_UPLOAD_FILEID(\
|
CN_S_FILENAME TEXT DEFAULT \"''\",\
|
CN_S_FILESFLAG TEXT DEFAULT \"''\",\
|
CN_S_SAVEDIR TEXT DEFAULT \"''\",\
|
CN_S_FILEMD5 TEXT DEFAULT \"''\",\
|
CN_S_FILEID TEXT DEFAULT \"''\",\
|
CN_N_FILE_SIZE BIGINT DEFAULT \"0\",\
|
PRIMARY KEY ( CN_S_FILENAME,CN_S_FILESFLAG, CN_S_SAVEDIR) \
|
)" );
|
try
|
{
|
CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::UpdateNewDBTableInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
}
|
pDBConnect->Release();
|
return TRUE;
|
}
|
return TRUE;
|
}
|
void CMBWatchDBMgr::CleanDBConnect( )
|
{
|
if( m_bIsCloseDB)
|
return;
|
m_bIsCloseDB = TRUE;
|
if ( m_pDBConnect )
|
{
|
m_pDBConnect->Release();
|
m_pDBConnect = NULL;
|
}
|
}
|
|
BOOL CMBWatchDBMgr::IsDBOpen()
|
{
|
if ( m_pDBConnect )
|
{
|
return m_pDBConnect->IsDBOpen();
|
}
|
return FALSE;
|
}
|
CMBWatchDBConnect* CMBWatchDBMgr::GetWatchDBConnect( )
|
{
|
if(m_pDBConnect)
|
{
|
if( !m_pDBConnect->IsDBOpen())
|
return NULL;
|
m_pDBConnect->AddRef();
|
return m_pDBConnect;
|
}
|
return NULL;
|
}
|
|
|
BOOL CMBWatchDBMgr::UpdatePropStringData( CString strPropClass,
|
CString strPropName, int nPropVer,CString strPropValue, CString strPropExtValue )
|
{
|
if ( strPropClass.IsEmpty() || strPropName.IsEmpty() )
|
return FALSE;
|
CString strSQL, strWhere;
|
CDBRecord ARecordset;
|
BOOL bReturn = true;
|
int nCount = 0;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
//CStrFileUtils::WriteDBErrToFile( _T("UpdatePropStringData") );
|
strSQL.Format( _T("SELECT COUNT(*) FROM TN_ND_PROPERTY WHERE CN_S_C1='%s' AND CN_S_C2='%s'"),CStrFileUtils::GetDBReplaceStr( strPropClass ),CStrFileUtils::GetDBReplaceStr( strPropName ));
|
try
|
{
|
ARecordset.Open( pDBConnect,strSQL );
|
while (S_OK == ARecordset.MoveNext() )
|
{
|
ARecordset.GetValue( 1, nCount );
|
break;
|
}
|
if(nCount > 0 )
|
{
|
strSQL.Format( _T("UPDATE TN_ND_PROPERTY SET CN_N_C3 = %d,CN_S_C4 = '%s',CN_B_C5=? WHERE CN_S_C1='%s' AND CN_S_C2='%s'"),
|
nPropVer,CStrFileUtils::GetDBReplaceStr( strPropValue ),CStrFileUtils::GetDBReplaceStr( strPropClass ),CStrFileUtils::GetDBReplaceStr( strPropName ) );
|
|
}
|
else
|
{
|
strSQL.Format( _T("INSERT INTO TN_ND_PROPERTY(CN_S_C1 , CN_S_C2 , CN_N_C3 , CN_S_C4, CN_B_C5) VALUES ( \
|
'%s', '%s', %d, '%s', ?)"), CStrFileUtils::GetDBReplaceStr( strPropClass ),CStrFileUtils::GetDBReplaceStr( strPropName ), nPropVer, CStrFileUtils::GetDBReplaceStr( strPropValue ));
|
}
|
bReturn = CDBBlob::SaveString(pDBConnect,strSQL, strPropExtValue);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError, strErrInfo;
|
|
strError = ex.GetErrInfo();
|
strErrInfo.Format(_T("UpdatePropData(%s) - %s"),strSQL, strError);
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
|
|
BOOL CMBWatchDBMgr::GetPropStringData(CString strPropClass,
|
CString strPropName, int &nPropVer,CString &strPropValue, CString &strPropExtValue )
|
{
|
if ( strPropClass.IsEmpty() || strPropName.IsEmpty() )
|
return FALSE;
|
CString strSQL;
|
CDBRecord ARecordset;
|
BOOL bReturn = FALSE;
|
BOOL bFlag = FALSE;
|
CString strVaule;
|
int nVaule;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
nPropVer = 0;
|
strPropValue = _T("");
|
strPropExtValue = _T("");
|
//CStrFileUtils::WriteDBErrToFile( _T("GetPropStringData") );
|
strSQL.Format( _T("SELECT CN_N_C3, CN_S_C4 FROM TN_ND_PROPERTY WHERE CN_S_C1='%s' AND CN_S_C2='%s'"),CStrFileUtils::GetDBReplaceStr( strPropClass ),CStrFileUtils::GetDBReplaceStr( strPropName ));
|
try
|
{
|
ARecordset.Open( pDBConnect,strSQL );
|
while ( S_OK == ARecordset.MoveNext() )
|
{
|
nVaule = 0;
|
ARecordset.GetValue( 1, nVaule );
|
nPropVer = nVaule;
|
strVaule = _T("");
|
ARecordset.GetValue( 2, strVaule );
|
strPropValue = strVaule;
|
bFlag = TRUE;
|
break;
|
}
|
if( bFlag )
|
{
|
strSQL.Format( _T("SELECT CN_B_C5 FROM TN_ND_PROPERTY WHERE CN_S_C1='%s' AND CN_S_C2='%s'"),CStrFileUtils::GetDBReplaceStr( strPropClass ),CStrFileUtils::GetDBReplaceStr( strPropName ));
|
bReturn = CDBBlob::ReadString(pDBConnect, strSQL, strPropExtValue);
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo.Format(_T("GetPropStringData(%s) - %s"),strSQL, strError);
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
|
void CMBWatchDBMgr::WriteLog(CString strLog )
|
{
|
CString strData;
|
CHighTime dtCurTime;
|
CString strFileLog;
|
|
dtCurTime = CHighTime::GetPresentTime( );
|
strData.Format( _T("%s:%d: %s"), dtCurTime.Format( _T("%Y-%m-%d %H:%M:%S") ),dtCurTime.GetMilliSecond() , strLog );
|
strFileLog.Format(_T("%s\\NetDisk.log"),CStrFileUtils::GetCurModuleDir());
|
CStrFileUtils::WriteRowToFile(strFileLog,strData );
|
}
|
|
BOOL CMBWatchDBMgr::GetBackupDirChangeCMD(CArraySyncDirCmd &arBackupDirCmd,bool bFirst )
|
{
|
CString strSQL;
|
long nCount = 0;
|
CDBRecord ARecordSet;
|
CString strTempValue;
|
SYNCDIR_CMDITEM itemCMD;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
arBackupDirCmd.RemoveAll();
|
if(bFirst)
|
strSQL.Format(_T("SELECT CN_G_ID,CN_S_FILE_PATH,CN_S_OP_TYPE,CN_S_PARAM_VALUE FROM TN_ND_BACKUPDIR_FILE WHERE CN_N_STATE = 0 OR (CN_N_STATE= %d AND CN_N_EXCCOUNT < 3)OR (CN_N_STATE= %d AND CN_N_EXCCOUNT < 3) ORDER BY CN_T_CREATE ASC"),CMD_BACKUPDIR_DEALERROR,CMD_BACKUPDIR_FAILED);// LIMIT 100
|
else
|
strSQL.Format(_T("SELECT CN_G_ID,CN_S_FILE_PATH,CN_S_OP_TYPE,CN_S_PARAM_VALUE FROM TN_ND_BACKUPDIR_FILE WHERE CN_N_STATE = 0 OR (CN_N_STATE= %d AND CN_N_EXCCOUNT < 3) ORDER BY CN_T_CREATE ASC"),CMD_BACKUPDIR_DEALERROR);// LIMIT 100
|
try
|
{
|
ARecordSet.Close( );
|
ARecordSet.Open( pDBConnect,strSQL );
|
while ( S_OK == ARecordSet.MoveNext() )
|
{
|
ARecordSet.GetValue( 1, strTempValue, true );
|
itemCMD.strGUID = strTempValue;
|
ARecordSet.GetValue( 2, strTempValue, true );
|
itemCMD.strFileName = strTempValue;
|
ARecordSet.GetValue(3, strTempValue, true );
|
itemCMD.strOpType = strTempValue;
|
ARecordSet.GetValue( 4, strTempValue, true );
|
itemCMD.strParam = strTempValue;
|
arBackupDirCmd.Add(itemCMD);
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::GetBackupDirChangeCMD - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return TRUE;
|
}
|
BOOL CMBWatchDBMgr::GetBackupDirChangeFailedCMD(CArraySyncDirCmd &arBackupDirCmd )
|
{
|
CString strSQL;
|
long nCount = 0;
|
CDBRecord ARecordSet;
|
CString strTempValue;
|
SYNCDIR_CMDITEM itemCMD;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
arBackupDirCmd.RemoveAll();
|
strSQL.Format(_T("SELECT CN_G_ID,CN_S_FILE_PATH,CN_S_OP_TYPE,CN_S_ERR,CN_T_CREATE FROM TN_ND_BACKUPDIR_FILE WHERE CN_N_STATE= %d OR CN_N_STATE= %d ORDER BY CN_T_CREATE ASC"),CMD_BACKUPDIR_DEALERROR,CMD_BACKUPDIR_FAILED);// LIMIT 100
|
try
|
{
|
ARecordSet.Close( );
|
ARecordSet.Open( pDBConnect,strSQL );
|
while ( S_OK == ARecordSet.MoveNext() )
|
{
|
ARecordSet.GetValue( 1, strTempValue, true );
|
itemCMD.strGUID = strTempValue;
|
ARecordSet.GetValue( 2, strTempValue, true );
|
itemCMD.strFileName = strTempValue;
|
ARecordSet.GetValue(3, strTempValue, true );
|
itemCMD.strOpType = strTempValue;
|
ARecordSet.GetValue( 4, strTempValue, true );
|
itemCMD.strParam = strTempValue;
|
ARecordSet.GetValue( 5, strTempValue, true );
|
itemCMD.strCreateTime = strTempValue;
|
arBackupDirCmd.Add(itemCMD);
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::GetBackupDirChangeFailedCMD - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return TRUE;
|
}
|
BOOL CMBWatchDBMgr::UpdateBackupDirChangeCMD( CString strGUID, int nState, CString strErr, int nErrID)
|
{
|
|
BOOL bReturn;
|
CString strSQL;
|
if(strGUID.IsEmpty())
|
return FALSE;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
//CStrFileUtils::WriteDBErrToFile( _T("UpdateSyncDirChangeCMD") );
|
if(nState == CMD_BACKUPDIR_DEALERROR || nState == CMD_BACKUPDIR_FAILED )
|
{
|
if(nErrID == -1 || nErrID ==28)
|
{
|
strSQL.Format(_T("UPDATE TN_ND_BACKUPDIR_FILE SET CN_N_STATE= %d,CN_S_ERR= '%s' WHERE CN_G_ID ='%s'"),
|
nState,CStrFileUtils::GetDBReplaceStr( strErr ), strGUID);
|
}
|
else
|
{
|
CDBRecord ARecordSet;
|
int nExcCount = 0;
|
strSQL.Format(_T("SELECT CN_N_EXCCOUNT FROM TN_ND_BACKUPDIR_FILE WHERE CN_G_ID ='%s'"), strGUID );
|
try
|
{
|
ARecordSet.Close( );
|
ARecordSet.Open( pDBConnect,strSQL );
|
while ( S_OK == ARecordSet.MoveNext() )
|
{
|
ARecordSet.GetValue( 1, nExcCount );
|
break;
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::UpdateChangeBackupDirInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
nExcCount++;
|
strSQL.Format(_T("UPDATE TN_ND_BACKUPDIR_FILE SET CN_N_EXCCOUNT=%d,CN_N_STATE= %d,CN_S_ERR= '%s' WHERE CN_G_ID ='%s'"),
|
nExcCount,nState,CStrFileUtils::GetDBReplaceStr( strErr ), strGUID);
|
}
|
}
|
else
|
{
|
if(nState == CMD_BACKUPDIR_FINISH)
|
{
|
pDBConnect->Release();
|
return RemoveBackupDirChangeCMD(strGUID);
|
}
|
strSQL.Format(_T("UPDATE TN_ND_BACKUPDIR_FILE SET CN_N_STATE= %d,CN_S_ERR= '%s' WHERE CN_G_ID ='%s'"),
|
nState,CStrFileUtils::GetDBReplaceStr( strErr ), strGUID );
|
}
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::UpdateBackupDirChangerCMD - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
BOOL CMBWatchDBMgr::ResetBackupDirChangeCMD( CString strGUID, CString strFilePath, CString strOperateType, CString strFileParam)
|
{
|
|
BOOL bReturn;
|
CString strSQL;
|
if(strGUID.IsEmpty())
|
return FALSE;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
|
strSQL.Format(_T("UPDATE TN_ND_BACKUPDIR_FILE SET CN_S_FILE_PATH= '%s',CN_S_OP_TYPE = '%s',CN_S_PARAM= '%s',CN_N_EXCCOUNT=0,CN_N_STATE= 0,CN_S_ERR= '' WHERE CN_G_ID ='%s'"),
|
CStrFileUtils::GetDBReplaceStr( strFilePath ),CStrFileUtils::GetDBReplaceStr( strOperateType ),CStrFileUtils::GetDBReplaceStr( strFileParam ), strGUID);
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::ResetBackupDirChangeCMD - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
BOOL CMBWatchDBMgr::RemoveBackupDirChangeCMD( CString strGUID)
|
{
|
BOOL bReturn;
|
CString strSQL;
|
if(strGUID.IsEmpty())
|
return FALSE;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
//CStrFileUtils::WriteDBErrToFile( _T("RemoveSyncDirChangeCMD") );
|
strSQL.Format(_T("DELETE FROM TN_ND_BACKUPDIR_FILE WHERE CN_G_ID= '%s'"), strGUID);
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::RemoveBackupDirChangeCMD - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
BOOL CMBWatchDBMgr::RemoveBackupDirCMD( CString strDir)
|
{
|
BOOL bReturn;
|
CString strSQL;
|
|
if(strDir.IsEmpty())
|
return FALSE;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
strDir.MakeLower();
|
strSQL.Format(_T("DELETE FROM TN_ND_BACKUPDIR_FILE WHERE lower(CN_S_FILE_PATH) LIKE '%s%%'"), CStrFileUtils::GetDBReplaceStr(strDir));
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::RemoveBackupDirCMD - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
BOOL CMBWatchDBMgr::RemoveAllBackupDirFailedCMD( )
|
{
|
BOOL bReturn;
|
CString strSQL;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
//CStrFileUtils::WriteDBErrToFile( _T("RemoveSyncDirChangeCMD") );
|
strSQL.Format(_T("DELETE FROM TN_ND_BACKUPDIR_FILE WHERE CN_N_STATE= %d OR CN_N_STATE= %d '"), CMD_BACKUPDIR_DEALERROR,CMD_BACKUPDIR_FAILED);
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::RemoveAllBackupDirFailedCMD - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
BOOL CMBWatchDBMgr::InsertChangeDirCMD(CString strFilePath, CString strOperateType, CString strFileParam )
|
{
|
BOOL bReturn;
|
CString strSQL;
|
|
if(strFilePath.IsEmpty())
|
return FALSE;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
CString strGUID = CStrFileUtils::GenerateGuid();
|
CHighTime dtCreate = CHighTime::GetPresentTime();
|
strSQL.Format(_T("INSERT INTO TN_ND_BACKUPDIR_FILE (CN_G_ID,CN_S_FILE_PATH,CN_S_OP_TYPE,CN_S_PARAM_VALUE,CN_T_CREATE) \
|
VALUES ('%s','%s','%s','%s','%s')"),
|
strGUID,CStrFileUtils::GetDBReplaceStr(strFilePath),CStrFileUtils::GetDBReplaceStr(strOperateType),CStrFileUtils::GetDBReplaceStr(strFileParam),dtCreate.Format(_T("%Y-%m-%d %H:%M:%S")));
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::InsertChangeDirCMD - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return TRUE;
|
}
|
BOOL CMBWatchDBMgr::ResetBackupDirCMDInitState( CString strGUID)
|
{
|
BOOL bReturn;
|
CString strSQL;
|
if(strGUID.IsEmpty())
|
return FALSE;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
//CStrFileUtils::WriteDBErrToFile( _T("RemoveSyncDirChangeCMD") );
|
strSQL.Format(_T("UPDATE TN_ND_BACKUPDIR_FILE SET CN_N_STATE=0,CN_N_EXCCOUNT=0 WHERE CN_G_ID= '%s'"), strGUID);
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::ResetBackupDirCMDInitState - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
BOOL CMBWatchDBMgr::ResetAllBackupDirFailedCMD( )
|
{
|
|
BOOL bReturn;
|
CString strSQL;
|
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
strSQL.Format(_T("UPDATE TN_ND_BACKUPDIR_FILE SET CN_N_STATE=0,CN_N_EXCCOUNT=0 WHERE CN_N_STATE=%d OR CN_N_STATE=%d"), CMD_BACKUPDIR_DEALERROR,CMD_BACKUPDIR_FAILED);
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::ResetBackupDirAllCMD - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
BOOL CMBWatchDBMgr::ResetBackupDirAllCMD( )
|
{
|
|
BOOL bReturn;
|
CString strSQL;
|
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
strSQL.Format(_T("UPDATE TN_ND_BACKUPDIR_FILE SET CN_N_STATE=0 WHERE CN_N_STATE=%d"),
|
CMD_BACKUPDIR_DEALING);
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::ResetBackupDirAllCMD - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
|
BOOL CMBWatchDBMgr::GetBackupDirInfo(CArraySyncDirInfo &arBackupDirInfo )
|
{
|
CString strSQL;
|
long nCount = 0;
|
CDBRecord ARecordSet;
|
CString strTempValue;
|
CString strPropClass;
|
CString strTemp;
|
SYNCDIR_ITEM itemSyncDir;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
arBackupDirInfo.RemoveAll();
|
strPropClass = _T("_NDBACKUPDIR");
|
//COINetDiskFun::WriteDBErrToFile( _T("GetSyncDirInfo") );
|
strSQL.Format( _T("SELECT CN_S_C2,CN_S_C4 FROM TN_ND_PROPERTY WHERE CN_S_C1='%s'"),CStrFileUtils::GetDBReplaceStr(strPropClass));
|
try
|
{
|
ARecordSet.Close( );
|
ARecordSet.Open( pDBConnect,strSQL );
|
while ( S_OK == ARecordSet.MoveNext() )
|
{
|
ARecordSet.GetValue( 1, strTempValue, true );
|
CBaseStringMgr::GetElementItem(strTempValue,strTemp, _T(";") );
|
itemSyncDir.strRootGUID = strTemp;
|
if(strTempValue.Find(_T(";") ) > 0)
|
{
|
CBaseStringMgr::GetElementItem(strTempValue,strTemp, _T(";") );
|
itemSyncDir.strGUID = strTemp;
|
itemSyncDir.strName = strTempValue;
|
}
|
else
|
{
|
itemSyncDir.strGUID = strTempValue;
|
}
|
ARecordSet.GetValue( 2, strTempValue, true );
|
itemSyncDir.strFileDir = strTempValue;
|
itemSyncDir.nType = FOLDER_TYPE_FOLDER;
|
arBackupDirInfo.Add(itemSyncDir);
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::GetBackupDirInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
}
|
strPropClass = _T("_DMSBACKUPDIR");
|
//COINetDiskFun::WriteDBErrToFile( _T("GetSyncDirInfo") );
|
strSQL.Format( _T("SELECT CN_S_C2,CN_S_C4 FROM TN_ND_PROPERTY WHERE CN_S_C1='%s'"),CStrFileUtils::GetDBReplaceStr(strPropClass));
|
try
|
{
|
ARecordSet.Close( );
|
ARecordSet.Open( pDBConnect,strSQL );
|
while ( S_OK == ARecordSet.MoveNext() )
|
{
|
ARecordSet.GetValue( 1, strTempValue, true );
|
CBaseStringMgr::GetElementItem(strTempValue,strTemp, _T(";") );
|
itemSyncDir.strRootGUID = strTemp;
|
if(strTempValue.Find(_T(";") ) > 0)
|
{
|
CBaseStringMgr::GetElementItem(strTempValue,strTemp, _T(";") );
|
itemSyncDir.strGUID = strTemp;
|
itemSyncDir.strName = strTempValue;
|
}
|
else
|
{
|
itemSyncDir.strGUID = strTempValue;
|
}
|
ARecordSet.GetValue( 2, strTempValue, true );
|
itemSyncDir.strFileDir = strTempValue;
|
itemSyncDir.nType = FOLDER_TYPE_CATALOG;
|
arBackupDirInfo.Add(itemSyncDir);
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::GetBackupDirInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return TRUE;
|
}
|
|
BOOL CMBWatchDBMgr::NewBackupDirInfoToDB(CString strRootGUID, CString strGUID,CString strName,int nType, CString strDir)
|
{
|
BOOL bReturn;
|
CString strSQL;
|
CDBRecord ARecordSet;
|
int nBackupDirCount = 0;
|
CString strPropClass;
|
|
if(strGUID.IsEmpty() || strDir.IsEmpty() )
|
return FALSE;
|
if(nType == FOLDER_TYPE_CATALOG)
|
strPropClass = _T("_DMSBACKUPDIR");
|
else if(nType == FOLDER_TYPE_FOLDER)
|
strPropClass = _T("_NDBACKUPDIR");
|
else
|
return FALSE;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
//COINetDiskFun::WriteDBErrToFile( _T("NewSyncDirInfo") );
|
strSQL.Format(_T("INSERT INTO TN_ND_PROPERTY (CN_S_C1, CN_S_C2,CN_N_C3,CN_S_C4) \
|
VALUES ('%s','%s;%s;%s',0,'%s')"), CStrFileUtils::GetDBReplaceStr(strPropClass),strRootGUID,strGUID,
|
CStrFileUtils::GetDBReplaceStr(strName),CStrFileUtils::GetDBReplaceStr( strDir ));
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::NewBackupDirInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
|
BOOL CMBWatchDBMgr::RemoveBackupDirInfo( CString strRootGUID,CString strGUID,int nType)
|
{
|
BOOL bReturn;
|
CString strSQL;
|
CString strPropClass;
|
|
if(strGUID.IsEmpty())
|
return FALSE;
|
if(nType == FOLDER_TYPE_CATALOG)
|
strPropClass = _T("_DMSBACKUPDIR");
|
else if(nType == FOLDER_TYPE_FOLDER)
|
strPropClass = _T("_NDBACKUPDIR");
|
else
|
{
|
return FALSE;
|
}
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
//CStrFileUtils::WriteDBErrToFile( _T("RemoveSyncDirInfo") );
|
strSQL.Format(_T("DELETE FROM TN_ND_PROPERTY WHERE CN_S_C1= '%s' AND CN_S_C2 LIKE '%s;%s%%'"), CStrFileUtils::GetDBReplaceStr(strPropClass),strRootGUID,strGUID);
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::RemoveBackupDirInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
|
BOOL CMBWatchDBMgr::RenameBackupDirInfo( CString strRootGUID, CString strGUID,CString strName,int nType)
|
{
|
BOOL bReturn;
|
CString strSQL;
|
CString strPropClass;
|
if(strGUID.IsEmpty() || strName.IsEmpty())
|
return FALSE;
|
if(nType == FOLDER_TYPE_CATALOG)
|
strPropClass = _T("_DMSBACKUPDIR");
|
else if(nType == FOLDER_TYPE_FOLDER)
|
strPropClass = _T("_NDBACKUPDIR");
|
else
|
{
|
return FALSE;
|
}
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
strSQL.Format(_T("UPDATE TN_ND_PROPERTY SET CN_S_C2 = '%s;%s;%s' WHERE CN_S_C1= '%s' AND CN_S_C2 LIKE '%s;%s%%'"),
|
CStrFileUtils::GetDBReplaceStr(strPropClass),strRootGUID,strGUID,CStrFileUtils::GetDBReplaceStr(strName),strRootGUID,strGUID);
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::RenameBackupDirInfo - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|
|
|
BOOL CMBWatchDBMgr::BatchRunSQL( CStringArray &arSQL)
|
{
|
BOOL bReturn;
|
CString strSQL;
|
if(arSQL.GetCount() < 1)
|
return FALSE;
|
CMBWatchDBConnect *pDBConnect= GetWatchDBConnect( );
|
if( !pDBConnect)
|
return FALSE;
|
try
|
{
|
pDBConnect->StartTransaction();
|
for(int i= 0; i < arSQL.GetCount(); i++)
|
{
|
strSQL = arSQL.GetAt(i);
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, pDBConnect);
|
}
|
pDBConnect->Commit();
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("CSTKNetDiskDBMgr::BatchRunSQL - ") + strError;
|
CStrFileUtils::WriteDBErrToFile( strErrInfo );
|
pDBConnect->Release();
|
return FALSE;
|
}
|
pDBConnect->Release();
|
return bReturn;
|
}
|