Constructs SQL query and retrieves the data from DB.
43{
48 }
49
50 if(session==0) {
52 return;
53 }
54
55 try
56 {
58
59 if(tagId.empty()) {
62 <<
" node. Returning empty recordset" <<
endmsg;
63 return;
64 }
65
67
68
70 for (char& ch : upperName) {
71 ch = std::toupper (
static_cast<unsigned int>(ch));
72 }
73
74 coral::IQuery* queryStructure = session->nominalSchema().newQuery();
75
76
77 const coral::ITableDescription& dataTableDesc = session->nominalSchema().tableHandle(upperName + "_DATA").description();
78 for(
int i=0;
i<dataTableDesc.numberOfColumns();
i++) {
79 queryStructure->addToOutputList(upperName + "_DATA." + dataTableDesc.columnDescription(i).name());
80 }
81
82
83 queryStructure->addToTableList(upperName + "_DATA");
84 queryStructure->addToTableList(upperName + "_DATA2TAG");
85
87 bindsData.extend<std::string>("tagID");
88
89
90 std::string queryStructCondition = upperName +"_DATA2TAG." + upperName + "_TAG_ID =:tagID";
91 queryStructCondition += " AND " + upperName +"_DATA." + upperName + "_DATA_ID=" + upperName + "_DATA2TAG." + upperName + "_DATA_ID";
92
93 queryStructure->setCondition(queryStructCondition , bindsData);
94 bindsData[0].data<std::string>() = tagId;
95
96 queryStructure->addToOrderList(upperName + "_DATA." + upperName + "_DATA_ID");
97 queryStructure->setMemoryCacheSize(1);
98
99 coral::ICursor& cursorStructure = queryStructure->execute();
100
101
102 while(cursorStructure.next()) {
103 const coral::AttributeList&
row = cursorStructure.currentRow();
105 }
106
107 delete queryStructure;
108 }
109 catch(coral::SchemaException& se) {
111 }
112 catch(std::exception& e) {
114 }
115 catch(...) {
117 }
118
119}
std::unique_ptr< IRDBRecord > IRDBRecord_ptr
#define ATLAS_THREAD_SAFE
std::string nodeName() const override
std::string tagName() const override
row
Appending html table to final .html summary file.