34 #ifndef __QueryBuilderHelper_h
35 #define __QueryBuilderHelper_h
41 #include "QGoIOConfigure.h"
43 #include "QGoIOConfigure.h"
60 const std::string & iWhat,
61 const std::string & iWhere,
62 const std::string & iConditions);
73 const std::string & iWhat,
74 const std::string & iWhere,
75 std::string iOrderByQuery =
"");
92 std::string
AddOrderBy(
const std::string & iAttribute,
93 std::string iAscDesc =
"ASC");
111 template<
typename T >
113 const std::vector<T> & iVectorValues,
114 std::string iConditionConnector =
"AND")
116 std::stringstream oConditions;
118 if (!iVectorValues.empty() )
122 for ( i = 0; i < iVectorValues.size() - 1; i++ )
124 oConditions << iField;
125 oConditions <<
" = '";
126 oConditions << iVectorValues[i];
128 oConditions << iConditionConnector;
131 oConditions << iField;
132 oConditions <<
" = '";
133 oConditions << iVectorValues[i];
136 return oConditions.str();
140 std::string
GetConditions(
const std::vector<FieldWithValue> & iConditions,
141 std::string iConditionConnector =
"AND");
145 const std::string & iValue,
146 std::string iOperator =
"=");
151 template<
typename T >
154 const std::string & iField,
155 const std::vector< T > & iOrVectorValues)
157 std::string oConditions;
158 std::vector<FieldWithValue> VectorConditions(1);
160 VectorConditions[0] = iFirtsPartCondition;
162 if (!iOrVectorValues.empty() )
164 oConditions = oConditions.substr(0, oConditions.size()-1);
165 oConditions +=
" AND ";
166 oConditions += GetConditions<T>(iField,iOrVectorValues,
"OR");
188 const std::string & iTable,
189 const std::string & iColumn,
190 std::string iOrderByColumnName =
"",
191 std::string iAscDesc =
"ASC");
204 const std::string & iTable,
205 const std::vector<std::string > & iListAttributes,
206 std::string iOrderByColumnName =
"",
207 std::string iAscDesc =
"ASC");
223 const std::string & iTable,
224 const std::string & iColumn,
225 const std::string & iConditions,
226 bool Distinct =
false,
227 std::string iOrderByColumnName =
"",
228 std::string iAscDesc =
"ASC");
234 const std::string & iTable,
235 const std::string & iColumn,
236 const std::string & iField,
237 const std::string & iValue,
238 std::string iOrderByColumnName =
"",
239 std::string iAscDesc =
"ASC",
240 bool Distinct =
false);
247 const std::string & iTable,
248 const std::vector<std::string> & iListAttributes,
249 const std::string & iField,
250 const std::string & iValue,
251 std::string iOrderByColumnName =
"",
252 std::string iAscDesc =
"ASC");
266 const std::string & iTable,
267 const std::string & iColumn,
268 const std::string & iField,
269 const std::vector< std::string > & iListValues,
270 bool Distinct =
false,
271 std::string iConditionConnector =
"OR");
278 const std::string & iTable,
279 const std::vector<std::string> & iListAttributes,
280 const std::string & iField,
281 std::vector< std::string > & iListValues,
282 bool Distinct =
false,
283 std::string iConditionConnector =
"OR");
290 const std::string & iTable,
291 const std::vector<std::string> & iListAttributes,
292 const std::string & iField,
293 const std::string & iValue,
294 bool Distinct =
false,
295 std::string iConditionConnector =
"OR");
301 const std::string & iTable,
302 const std::string & iColumn,
303 const std::vector<FieldWithValue> & iConditions,
304 std::string iConditionConnector =
"OR",
305 bool Distinct =
false);
312 const std::string & iTable,
313 const std::vector<std::string> & iListAttributes,
314 const std::vector<FieldWithValue> & iConditions,
315 std::string iConditionConnector =
"OR",
316 bool Distinct =
false,
317 std::string iOrderByColumnName =
"");
338 const std::string & iTableOne,
339 const std::string & iTableTwo,
341 bool NonNULLRows =
false);
355 const std::string & iTable,
356 const std::string & iTableTwo,
357 const std::string & iTableThree,
362 std::string
GetGroupBy(
const std::string & iColumn,
unsigned int iNumberDoublons);
382 const std::vector<std::string> & iSelectedAttributes,
383 const std::string & iTableOne,
384 const std::string & iTableTwo,
385 const std::string & iTableThree,
388 const std::string & iFieldOne,
389 unsigned int iValueFieldOne,
390 const std::string & iIDFieldName,
391 const std::list< unsigned int > & iListIDs);
QGOIO_EXPORT std::string AddOrderBy(const std::string &iAttribute, std::string iAscDesc="ASC")
ORDER BY iAttributes iAscDesc.
QGOIO_EXPORT std::vector< std::string > ListUnsgIntToVectorString(const std::list< unsigned int > &iList)
QGOIO_EXPORT std::string GetLeftJoinThreeTables(const std::string &iTable, const std::string &iTableTwo, const std::string &iTableThree, const FieldWithValue &iOnConditionOne, const FieldWithValue &iOnConditionTwo)
(iTable LEFT JOIN iTableTwo ON iTable.iOnCondition/Field = iTableTwo.iOnCondition/Value) LEFT JOIN iT...
QGOIO_EXPORT std::string SelectGeneralQueryConditions(const std::string &iWhat, const std::string &iWhere, const std::string &iConditions)
SELECT iWhat FROM iWhere WHERE iConditions.
QGOIO_EXPORT std::string SelectQueryStreamCondition(const std::string &iTable, const std::string &iColumn, const std::string &iConditions, bool Distinct=false, std::string iOrderByColumnName="", std::string iAscDesc="ASC")
SELECT (Distinct) iColumn FROM iTable WHERE iConditions (ORDER BY irderByColumnName iAscDesc);...
std::string GetConditions(const std::string &iField, const std::vector< T > &iVectorValues, std::string iConditionConnector="AND")
(iField = iListValues[i] iConditionConnector iField = iListValues[i+1]...)
std::string GetAndORConditions(const FieldWithValue &iFirtsPartCondition, const std::string &iField, const std::vector< T > &iOrVectorValues)
(iFirstPartCondition AND (iField = iOrVectorValues1 OR iField = iOrVectorValues1...))
QGOIO_EXPORT std::string GetSelectedAttributes(const std::vector< std::string > &iListAttributes)
iListAttributes[i], iListAttributes[i+1]...
QGOIO_EXPORT std::string GetGroupBy(const std::string &iColumn, unsigned int iNumberDoublons)
QGOIO_EXPORT std::string SelectForTracesInfo(const std::vector< std::string > &iSelectedAttributes, const std::string &iTableOne, const std::string &iTableTwo, const std::string &iTableThree, const FieldWithValue &iJoinConditionOne, const FieldWithValue &iJoinConditionTwo, const std::string &iFieldOne, unsigned int iValueFieldOne, const std::string &iIDFieldName, const std::list< unsigned int > &iListIDs)
SELECT iSelectedAttributes[0], iSelectedAttributes[1]...FROM (iTableOne left join iTableTwo on iJoinC...
QGOIO_EXPORT std::string SelectQueryStream(const std::string &iTable, const std::string &iColumn, std::string iOrderByColumnName="", std::string iAscDesc="ASC")
SELECT iColumn FROM iTable ORDER BY iOrderByColumnName iAscDesc;.
QGOIO_EXPORT std::vector< std::string > VectorUnsgIntToVectorString(const std::vector< unsigned int > &iVector)
QGOIO_EXPORT std::string SelectGeneralQuery(const std::string &iWhat, const std::string &iWhere, std::string iOrderByQuery="")
SELECT iWhat FROM iWhere iOrderByQuery.
QGOIO_EXPORT std::list< unsigned int > VectorStringToUnsgInt(const std::vector< std::string > &iVector)
QGOIO_EXPORT std::string AddDistinctToWhat(const std::string &iWhat)
DISTINCT iWhat.
QGOIO_EXPORT std::string SelectQueryStreamListConditions(const std::string &iTable, const std::string &iColumn, const std::string &iField, const std::vector< std::string > &iListValues, bool Distinct=false, std::string iConditionConnector="OR")
SELECT (Distinct) iColumn FROM iTable WHERE iField = iValue Or/And...
QGOIO_EXPORT std::string GetLeftJoinTwoTables(const std::string &iTableOne, const std::string &iTableTwo, const FieldWithValue &iOnCondition, bool NonNULLRows=false)
iTableOne LEFT JOIN iTableTwo ON iTableOne.iOnCondition/Field = iTableTwo.iOnCondition/Value ...