--- YodaProfiler/src/GLTables.cpp 2007/04/17 12:06:55 1.26 +++ YodaProfiler/src/GLTables.cpp 2007/09/07 21:10:57 1.30 @@ -49,7 +49,7 @@ fNquery = 0; }; -Bool_t GL_TABLES::IsConnected(TSQLServer *dbc){ +Bool_t GL_TABLES::IsConnected(TSQLServer *&dbc){ // // // @@ -59,18 +59,28 @@ // // // - // printf(" host is %s \n",fHost->Data()); + // printf(" host is %s \n",fHost->Data()); // stringstream myquery; myquery.str(""); myquery << "show databases;"; - dbc->Query(myquery.str().c_str()); - fNquery++; - // - if ( dbc->GetErrorCode() != 2013 && dbc->GetErrorCode() != 2006 ){ - // is connected - return true; - } else { + if ( dbc ){ + if ( dbc->IsConnected() ){ + dbc->Query(myquery.str().c_str()); + fNquery++; + if ( !(dbc->GetErrorCode()) ){ + // printf("ok\n"); + // + // if ( (dbc->GetErrorCode() != 2013 && dbc->GetErrorCode() != 2006) ){ + // if ( !(dbc->GetErrorCode()) ){ + // is connected + return true; + // }; + }; + }; + }; + // printf("porca di quella \n"); + if ( true ) { // printf(" WARNING: Lost connection to DB! try to recover... \n"); // @@ -84,8 +94,10 @@ myquery << "show databases;"; dbc->Query(myquery.str().c_str()); fNquery++; + // printf(" e riporca di quella \n"); // - if ( dbc->GetErrorCode() != 2013 && dbc->GetErrorCode() != 2006 ){ + // if ( dbc->GetErrorCode() != 2013 && dbc->GetErrorCode() != 2006 ){ + if ( !(dbc->GetErrorCode()) ){ // printf(" ...connection recovered, I can continue! \n"); // @@ -1171,6 +1183,7 @@ myquery.str(""); myquery << "select ID,ID_ROOT_L0,EV_ROOT_CALIBTRK1,EV_ROOT_CALIBTRK2,FROM_TIME,TO_TIME,OBT1,OBT2,PKT1,PKT2,BOOT_NUMBER,VALIDATION from GL_TRK_CALIB where FROM_TIME <= "<< time; // myquery << " AND VALIDATION=1 ORDER BY FROM_TIME DESC LIMIT 1;"; // RIVEDERE LA VALIDAZIONE!!! + myquery << " and EV_ROOT_CALIBTRK1>=0 and EV_ROOT_CALIBTRK2>=0 "; // EM! SE MANCA UN PACCHETTO DEI DUE IL PROCESSAMENTO CRASHA... DA RIVEDERE LA VALIDAZIONE myquery << " ORDER BY FROM_TIME DESC LIMIT 1;"; // myquery << " ORDER BY FROM_TIME DESC LIMIT 1;"; if ( !this->GetGLTABLES()->IsConnected(dbc) ) return -57; @@ -1467,9 +1480,11 @@ // // stringstream oss; + TString frn = rname.str().c_str(); + frn = frn.ReplaceAll(".root",5,".pam",4); oss.str(""); oss << "SELECT YEAR(OFFSET_DATE),MONTH(OFFSET_DATE),DAY(OFFSET_DATE),HOUR(OFFSET_DATE),MINUTE(OFFSET_DATE),SECOND(OFFSET_DATE) FROM GL_RESURS_OFFSET WHERE SPECIAL_FILE='" - << rname.str().c_str() << "';"; + << frn.Data() << "';"; if ( !this->GetGLTABLES()->IsConnected(dbc) ) return; this->GetGLTABLES()->AddQ(); pResult = dbc->Query(oss.str().c_str()); @@ -1805,10 +1820,10 @@ TSQLRow *row; // Set the right time_zone (otherwise horrible things will occur! :) + if ( !this->GetGLTABLES()->IsConnected(dbc) ) return -57; dbc->Query("SET time_zone = '+0:00'"); // Do the query - if ( !this->GetGLTABLES()->IsConnected(dbc) ) return -57; this->GetGLTABLES()->AddQ(); result = dbc->Query(myquery.Data()); if(! result->GetRowCount() ) {