/** @file ModifySOFIE_Summary.cpp & @author Brian Magill @datecreated 6/16/2006 $Date:$ $Revision:$ @copyright (©) Copyright 2006 by GATS Inc. 11864 Canon Blvd., Suite 101, Newport News, VA 23606 All Rights Reserved. No part of this software or publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise without the prior written permission of GATS Inc. @brief Class for writing data to ModifySOFIE_Summary table */ #include #include #include #include "ModifySOFIE_Summary.h" #include "GATS_DB_Exception.h" #include "GATS_Utilities.hpp" #include "GATS_DB_Exception.h" #include "SOFIEDBException.h" #include "SOFIELevel1DBUtilities.h" using namespace std; using namespace gatsDBpp; using namespace GATS_Utilities; void ModifySOFIE_Summary::insertIntoTable(long event, long orbit, long start_time, long end_time, long start_occ, long end_occ, long start_scan, long end_scan, char mode, float latitude, float longitude, long ProcTime, string Level0_ID, string Version) /// /// @brief updates the ModifySOFIE_Summary table. /// /// /// @param event - SOFIE event number /// /// @param orbit - SOFIE orbit number /// /// @param start_time - Starting time for event /// /// @param end_time - Ending time for event /// /// @param start_occ - Ending time for occultation portion of scan /// /// @param end_occ - Ending time for occultation portion of scan /// /// @param start_scan - Ending time for solar scan portion of scan /// /// @param end_scan - Ending time for solar scan portion of scan /// /// @param mode - "mode" of event, where it is a sunrise or a sunset /// /// @param latitude - tangent latitude at 83 km /// /// @param longitude - tangent longitude at 83 km /// /// @param ProcTime - date Level 1 Processing took place /// /// @param Level0_ID - Level 0 data version /// /// @param Version - Level 1 version /// /// { try { vector > dataRow; dataRow.push_back( pair("event", ColData(event) ) ); dataRow.push_back( pair("orbit_number", ColData(orbit) ) ); dataRow.push_back( pair("start_time", ColData(FromUnix(start_time),false)) ); dataRow.push_back( pair("end_time", ColData(FromUnix(end_time),false)) ); dataRow.push_back( pair("start_occ", ColData(FromUnix(start_occ),false)) ); dataRow.push_back( pair("end_occ", ColData(FromUnix(end_occ),false)) ); dataRow.push_back( pair("start_scan", ColData(FromUnix(start_scan),false)) ); dataRow.push_back( pair("end_scan", ColData(FromUnix(end_scan),false)) ); dataRow.push_back( pair("mode", ColData(&mode, 1, true) ) ); dataRow.push_back( pair("latitude", ColData(latitude) ) ); dataRow.push_back( pair("longitude", ColData(longitude) ) ); dataRow.push_back( pair("ProcTime", ColData(FromUnix(ProcTime),false)) ); dataRow.push_back( pair("Level0_ID", ColData(Level0_ID) ) ); dataRow.push_back( pair("L1_Version", ColData(Version) ) ); dbConn->InsertIntoTable(tableName.c_str(), dataRow ); } catch (GATS_DB_Exception ex) { string errstr = "ModifySOFIE_Summary::insertTable Error: " + string(ex.what() ) + string(" for table ") + tableName; THROW_GATS_EXCEPTION(SOFIEDBException, errstr); } } void ModifySOFIE_Summary::updateTable(long event, long orbit, long start_time, long end_time, long start_occ, long end_occ, long start_scan, long end_scan, char mode, float latitude, float longitude, long ProcTime, string Level0_ID, string Version) /// /// @param event - SOFIE event number /// /// /// @brief /// /// { vector < pair > dataRow; try { string whereCause = "WHERE event = " + ConvertToString(event) ; dataRow.clear(); dataRow.push_back( pair("orbit_number", ColData(orbit) ) ); dataRow.push_back( pair("start_time", ColData(FromUnix(start_time),false)) ); dataRow.push_back( pair("end_time", ColData(FromUnix(end_time),false)) ); dataRow.push_back( pair("start_occ", ColData(FromUnix(start_occ),false)) ); dataRow.push_back( pair("end_occ", ColData(FromUnix(end_occ),false)) ); dataRow.push_back( pair("start_scan", ColData(FromUnix(start_scan),false)) ); dataRow.push_back( pair("end_scan", ColData(FromUnix(end_scan),false)) ); dataRow.push_back( pair("mode", ColData(&mode, 1, true) ) ); dataRow.push_back( pair("latitude", ColData(latitude) ) ); dataRow.push_back( pair("longitude", ColData(longitude) ) ); dataRow.push_back( pair("ProcTime", ColData(FromUnix(ProcTime),false)) ); dataRow.push_back( pair("Level0_ID", ColData(Level0_ID) ) ); dataRow.push_back( pair("L1_Version", ColData(Version) ) ); dbConn->UpdateTable(tableName.c_str(), dataRow, whereCause.c_str()); } catch (GATS_DB_Exception ex) { string errstr = "ModifySOFIE_Summary::updateTable Error: " + string(ex.what() ) + string(" for table ") + tableName; THROW_GATS_EXCEPTION(SOFIEDBException, errstr); } } bool ModifySOFIE_Summary::eventExists(long event) /// /// @brief sets up entries to update the OutputMerged_ZPT table. /// /// @param event - SOFIE event number /// { try { GATS_DB_Results results; string strSQL = "SELECT COUNT(*) FROM " + tableName + " WHERE event = " + ConvertToString(event); results = dbConn->Query(strSQL.c_str()); if (results.size() > 0 ) { return ( results[0][0].asLong() > 0); } else return false; } catch (GATS_DB_Exception ex) { string errstr = "ModifySOFIE_Summary::eventExists Error: " + string(ex.what() ) + string(" for table ") + tableName; THROW_GATS_EXCEPTION(SOFIEDBException, errstr); } } void ModifySOFIE_Summary::deleteEvent(int event) const { string strErr; try { GATS_DB_Results results; string strSQL = "DELETE FROM " + tableName + " WHERE Event = " + ConvertToString(event); results = dbConn->Query(strSQL.c_str()); } catch (exception &ex) { strErr = "DeleteSummary Warning: " + string(ex.what()) + string(" for table ") + tableName; } };