CMS 3D CMS Logo

CSCMap.cc

Go to the documentation of this file.
00001 #include "OnlineDB/CSCCondDB/interface/CSCMap.h"
00002 
00006   cscmap::cscmap () throw (oracle::occi::SQLException)
00007   {
00008     std::string db_user;
00009     std::string db_pass;
00010     env = oracle::occi::Environment::createEnvironment (oracle::occi::Environment::DEFAULT);
00011     char* c_user = ::getenv("CSCMAP_AUTH_USER");
00012     char* c_pass = ::getenv("CSCMAP_AUTH_PASSWORD");
00013     db_user=std::string(c_user);
00014     db_pass=std::string(c_pass);
00015     con = env->createConnection (db_user,db_pass,"devdb");
00016      std::cout << "Connection to mapping DB is done." << std::endl;
00017   }// end of constructor cscmap ()
00021   cscmap::~cscmap () throw (oracle::occi::SQLException)
00022   {
00023     env->terminateConnection (con);
00024     oracle::occi::Environment::terminateEnvironment (env);
00025   }  // end of ~cscmap ()
00026 
00027   void cscmap::crate0_chamber (int crate0, int dmb, std::string *chamber_id,
00028   int *chamber_num, int *sector, int *first_strip_index,
00029   int *strips_per_layer, int *chamber_index)
00030   {
00031     oracle::occi::Statement *stmt = con->createStatement();
00032     stmt->setSQL("begin cscmap.chamber0(:1, :2, :3, :4, :5, :6, :7, :8); end;");
00033 
00034     stmt->setInt (1, crate0);
00035     stmt->setInt (2, dmb);
00036     stmt->registerOutParam(3, oracle::occi::OCCISTRING, 10);
00037     stmt->registerOutParam (4, oracle::occi::OCCIINT);
00038     stmt->registerOutParam (5, oracle::occi::OCCIINT);
00039     stmt->registerOutParam (6, oracle::occi::OCCIINT);
00040     stmt->registerOutParam (7, oracle::occi::OCCIINT);
00041     stmt->registerOutParam (8, oracle::occi::OCCIINT);
00042 
00043     stmt->execute(); //execute procedure
00044 
00045     *chamber_id = stmt->getString(3);
00046     *chamber_num = stmt->getInt(4);
00047     *chamber_index = stmt->getInt(5);
00048     *first_strip_index = stmt->getInt(6);
00049     *strips_per_layer = stmt->getInt(7);
00050     *sector = stmt->getInt(8);
00051 
00052     con->terminateStatement (stmt);
00053   } //end of crate0_chamber
00054 
00055   void cscmap::crate_chamber (int crate, int dmb, std::string *chamber_id,
00056   int *chamber_num, int *sector, int *first_strip_index,
00057   int *strips_per_layer, int *chamber_index)
00058   {
00059     oracle::occi::Statement *stmt = con->createStatement();
00060     stmt->setSQL("begin cscmap.chamber(:1, :2, :3, :4, :5, :6, :7, :8); end;");
00061 
00062     stmt->setInt (1, crate);
00063     stmt->setInt (2, dmb);
00064     stmt->registerOutParam(3, oracle::occi::OCCISTRING, 10);
00065     stmt->registerOutParam (4, oracle::occi::OCCIINT);
00066     stmt->registerOutParam (5, oracle::occi::OCCIINT);
00067     stmt->registerOutParam (6, oracle::occi::OCCIINT);
00068     stmt->registerOutParam (7, oracle::occi::OCCIINT);
00069     stmt->registerOutParam (8, oracle::occi::OCCIINT);
00070 
00071     stmt->execute(); //execute procedure
00072 
00073     *chamber_id = stmt->getString(3);
00074     *chamber_num = stmt->getInt(4);
00075     *chamber_index = stmt->getInt(5);
00076     *first_strip_index = stmt->getInt(6);
00077     *strips_per_layer = stmt->getInt(7);
00078     *sector = stmt->getInt(8);
00079 
00080     con->terminateStatement (stmt);
00081   } //end of crate_chamber
00082 
00083   void cscmap::chamber_crate (std::string chamber_id, int *crate, int *dmb,
00084                       int *sector, int *chamber_num, int *crate0,
00085                       int *first_strip_index, int *strips_per_layer,
00086                       int *chamber_index)
00087   {
00088     oracle::occi::Statement *stmt = con->createStatement();
00089     stmt->setSQL("begin cscmap.crate0_proc(:1, :2, :3, :4, :5, :6, :7, :8, :9); end;");
00090 
00091     stmt->setString (1, chamber_id);
00092     stmt->registerOutParam (2, oracle::occi::OCCIINT);
00093     stmt->registerOutParam (3, oracle::occi::OCCIINT);
00094     stmt->registerOutParam (4, oracle::occi::OCCIINT);
00095     stmt->registerOutParam (5, oracle::occi::OCCIINT);
00096     stmt->registerOutParam (6, oracle::occi::OCCIINT);
00097     stmt->registerOutParam (7, oracle::occi::OCCIINT);
00098     stmt->registerOutParam (8, oracle::occi::OCCIINT);
00099     stmt->registerOutParam (9, oracle::occi::OCCIINT);
00100 
00101     stmt->execute(); //execute procedure
00102 
00103     *crate0 = stmt->getInt(2);
00104     *crate  = stmt->getInt(3);
00105     *dmb    = stmt->getInt(4);
00106     *sector = stmt->getInt(5);
00107     *chamber_num = stmt->getInt(6);
00108     *chamber_index = stmt->getInt(7);
00109     *first_strip_index = stmt->getInt(8);
00110     *strips_per_layer = stmt->getInt(9);
00111 
00112     con->terminateStatement (stmt);
00113   } //end of crate_chamber

Generated on Tue Jun 9 17:40:41 2009 for CMSSW by  doxygen 1.5.4