GOFIGURE2  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Functions
SelectQueryDatabaseHelper.h File Reference
#include <vector>
#include <string>
#include "boost/unordered_map.hpp"
#include <list>
#include "itkMacro.h"
#include "vtkMySQLDatabase.h"
#include "vtkSQLQuery.h"
#include "GoDBTraceInfoForVisu.h"
#include "ContourMeshStructure.h"
#include "TrackStructure.h"
#include "LineageStructure.h"
#include "QueryBuilderHelper.h"
#include "ConvertToStringHelper.h"
#include "QGoIOConfigure.h"
Include dependency graph for SelectQueryDatabaseHelper.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<typename T >
void ExecuteQueryAndModifyListStructure (vtkMySQLDatabase *iDatabaseConnector, const std::string &iQueryString, std::list< T > &ioListStructure, const std::string &iTableOne)
 execute iQueryString and put the results in a list of T structure More...
 
template<class TResultsQuery >
TResultsQuery ExecuteSelectQuery (vtkMySQLDatabase *iDatabaseConnector, const std::string &iQuery)
 
template<class T >
ExecuteSelectQueryOneValue (vtkMySQLDatabase *iDatabaseConnector, const std::string &iQuery)
 
QGOIO_EXPORT int FindOneID (vtkMySQLDatabase *DatabaseConnector, const std::string &TableName, const std::string &ColumnName, const std::string &field, const std::string &value)
 SELECT ColumnName FROM TableName WHERE field = value. More...
 
QGOIO_EXPORT int FindOneID (vtkMySQLDatabase *DatabaseConnector, const std::string &TableName, const std::string &ColumnName, const std::vector< FieldWithValue > &iConditions)
 
QGOIO_EXPORT std::vector
< std::string > 
FindSeveralIDs (vtkMySQLDatabase *iDatabaseConnector, const std::string &TableName, const std::string &ColumnName, const std::vector< FieldWithValue > &iConditions)
 "SELECT ColumnName FROM TableName WHERE (field1 = value1 AND field2 = value2...); More...
 
QGOIO_EXPORT std::list
< unsigned int > 
GetAllSelectedValuesFromTwoTables (vtkMySQLDatabase *iDatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::string &iColumn, const FieldWithValue &iJoinCondition, const std::vector< FieldWithValue > &iFieldsWithValues, bool Distinct=false)
 
QGOIO_EXPORT std::vector
< std::string > 
GetAllSelectedValuesFromTwoTables (vtkMySQLDatabase *iDatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::vector< std::string > &iListAttributes, const FieldWithValue &iJoinCondition, const std::vector< FieldWithValue > &iFieldsWithValues, std::string iConditionConnector="AND", std::string ColumnNameOrder="")
 
QGOIO_EXPORT std::list
< unsigned int > 
GetAllSelectedValuesFromTwoTables (vtkMySQLDatabase *iDatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::string &iColumn, const FieldWithValue &iJoinCondition, const std::string &iField, const std::vector< std::string > &iVectorValues, bool Distinct=false, bool NonNULLRows=false)
 
QGOIO_EXPORT std::list
< unsigned int > 
GetAllSelectedValuesFromTwoTables (vtkMySQLDatabase *iDatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::string &iColumn, const FieldWithValue &iJoinCondition, const std::string &iField, const std::vector< std::string > &iVectorValues, const FieldWithValue &iAndCondition)
 
QGOIO_EXPORT std::list
< unsigned int > 
GetAllSelectedValuesFromTwoTables (vtkMySQLDatabase *iDatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::vector< std::string > &iSelectedFields, const FieldWithValue &iJoinCondition, const std::string &iField, const std::string &iValue, bool NonNULLRows)
 
QGOIO_EXPORT std::list< double * > GetCenterBoundingBoxes (vtkMySQLDatabase *DatabaseConnector, const std::string &iTableName, const std::string &iField, const std::string &iValue)
 
QGOIO_EXPORT std::list
< unsigned int > 
GetColumnForBoundedValue (const std::string &iColumnName, const std::string &TableName, const std::string &iImgSessionID, const std::string &iCoordType, const std::string &iValue, vtkMySQLDatabase *DatabaseConnector)
 
QGOIO_EXPORT std::string GetCoordinateValuesQueryString (const std::string &iTableName, const std::string &iField, const std::string &iValue, bool iMin)
 
QGOIO_EXPORT std::list
< unsigned int > 
GetDoublonValuesFromTwoTables (vtkMySQLDatabase *iDatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::string &iColumn, const FieldWithValue &iJoinCondition, const std::string &iField, const std::vector< std::string > &iVectValues)
 
template<typename T >
void GetInfoFromDBAndModifyListStructure (std::list< T > &ioListStructure, vtkMySQLDatabase *iDatabaseConnector, 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 from (tableone left join tabletwo ijoinconditionone) left join tablethree ijoinconditiontwo where (ifieldone = ivaluefieldone and (iIDfieldname = ivectids1 or ivectids2...) ); More...
 
QGOIO_EXPORT std::list
< unsigned int > 
GetListValuesFromTwoTablesAndCondition (vtkMySQLDatabase *iDatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::string &iColumn, const FieldWithValue &iJoinCondition, const std::string &iField, const std::vector< std::string > &iVectorValues, const FieldWithValue &iAndCondition)
 
QGOIO_EXPORT int GetMaxValueFromTwoTables (vtkMySQLDatabase *iDatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::string &iColumn, const FieldWithValue &iJoinCondition, const std::string &iField, const std::vector< std::string > &iVectorValues, const FieldWithValue &iAndCondition)
 
QGOIO_EXPORT std::vector
< std::string > 
GetOrderByWithLimit (vtkMySQLDatabase *iDatabaseConnector, const std::string &iColumnName, const std::string &iTableName, const std::string &iField, const std::string &iValue, bool ASC, const std::string &iNumberLimit)
 
QGOIO_EXPORT std::vector
< std::string > 
GetSamefieldFromTwoTables (vtkMySQLDatabase *DatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::string &iColumn, const std::string &iField, const std::string &iValue, const std::string &iFieldTwo, const std::vector< std::string > &iListConditionsTwo)
 
QGOIO_EXPORT std::vector
< std::string > 
GetSameFieldsFromSeveralTables (vtkMySQLDatabase *DatabaseConnector, const std::vector< std::string > &iColumnNames, const std::vector< std::string > &iVectorTablesNames, const std::vector< std::string > &iVectorConditionFieldNames, const std::vector< std::vector< std::string > > &iVectorConditionsValues)
 
QGOIO_EXPORT std::vector
< std::string > 
GetSamefieldsFromTwoTables (vtkMySQLDatabase *DatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::string &iColumnOne, const std::string &iColumnTwo, const std::string &iField, const std::string &iValue)
 
QGOIO_EXPORT std::vector
< std::string > 
GetSamefieldsFromTwoTables (vtkMySQLDatabase *DatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const std::string &iColumnOne, const std::string &iColumnTwo, const std::string &iField, const std::string &iValue, const std::string &iFieldTwo, const std::vector< std::string > &iListConditionsTwo)
 
QGOIO_EXPORT std::vector
< std::string > 
GetSpecificValueFromOneTableWithConditionsOnTwoColumns (vtkMySQLDatabase *DatabaseConnector, const std::string &iColumnName, const std::string &iTableName, const std::string &iFieldOne, const std::vector< std::string > &iVectorConditionFieldOne, const std::string &iFieldTwo, const std::vector< std::string > &iVectorConditionFieldTwo)
 
QGOIO_EXPORT std::list
< unsigned int > 
GetSpecificValuesEqualToZero (vtkMySQLDatabase *iDatabaseConnection, const std::string &iColumnName, const std::string &iTableName, const std::vector< std::string > &iVectorConditionFieldOne, const std::string &iFieldTwo)
 
QGOIO_EXPORT std::list
< unsigned int > 
GetTwoFieldsFromTwoTables (vtkMySQLDatabase *DatabaseConnector, const std::string &iTableOne, const std::string &iTableTwo, const FieldWithValue &iOnCondition, const std::string &iColumnOne, const std::string &iColumnTwo, const std::string &iField, const std::vector< std::string > &iListValues, bool Distinct)
 
QGOIO_EXPORT std::vector
< std::vector< std::string > > 
GetValuesFromSeveralTables (vtkMySQLDatabase *DatabaseConnector, const std::string &MainTable, const std::vector< std::string > &SelectFields, const std::string &field, const std::string &value, const std::vector< std::string > &JoinTablesOnTraceTable, bool Distinct)
 
QGOIO_EXPORT std::vector
< std::vector< std::string > > 
GetValuesFromSeveralTables (vtkMySQLDatabase *DatabaseConnector, const std::string &MainTable, const std::vector< std::string > &SelectFields, const std::vector< std::string > &WhereAndConditions, const std::vector< std::string > &JoinTablesOnTraceTable, bool Distinct)
 
std::vector< std::vector
< std::string > > 
GetValuesFromSeveralTables (vtkMySQLDatabase *DatabaseConnector, const std::string &MainTable, const std::vector< std::string > &SelectFields, const std::string &field, const std::string &value, const std::vector< std::string > &JoinTablesOnTraceTable, bool Distinct, const std::vector< FieldWithValue > &iWhereOrConditions)
 
QGOIO_EXPORT std::vector
< std::string > 
ListAllValuesForOneColumn (vtkMySQLDatabase *DatabaseConnector, const std::string &ColumnName, const std::string &TableName, std::string OrderByColumnName="")
 SELECT ColumnName from TableName ORDER BY OrderbyColumnName. More...
 
QGOIO_EXPORT std::vector
< std::string > 
ListSpecificValuesForOneColumn (vtkMySQLDatabase *iDatabaseConnector, const std::string &TableName, const std::string &ColumnName, const std::string &field, const std::string &value, bool ExcludeZero=false)
 SELECT ColumnName FROM TableName WHERE field = value and ColumnName <> 0 (if excludezero) More...
 
QGOIO_EXPORT std::vector
< std::string > 
ListSpecificValuesForOneColumn (vtkMySQLDatabase *iDatabaseConnector, const std::string &TableName, const std::string &ColumnName, const std::string &field, const std::string &value, const std::string &ColumnNameOrder)
 SELECT ColumnName FROM TableName WHERE field = value ORDER BY ColumnNameOrder ASC This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
QGOIO_EXPORT std::vector
< std::string > 
ListSpecificValuesForOneColumn (vtkMySQLDatabase *iDatabaseConnector, const std::string &TableName, const std::string &ColumnName, const std::string &field, const std::vector< std::string > &VectorValues, bool Distinct=false, bool ExcludeZero=false)
 SELECT ColumnName FROM TableName WHERE (field = value1 or field = value2 AND ColumnName <> 0 (if excludezero)) This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
QGOIO_EXPORT std::list
< unsigned int > 
ListSpecificValuesForOneColumn (vtkMySQLDatabase *iDatabaseConnector, const std::string &TableName, const std::string &ColumnName, const std::string &field, const std::list< unsigned int > &ListValues, bool Distinct=false, bool ExcludeZero=false)
 SELECT ColumnName FROM TableName WHERE (field = value1 or field = value2 AND ColumnName <> 0 (if excludezero)) This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
QGOIO_EXPORT std::list
< unsigned int > 
ListSpecificValuesForOneColumn (vtkMySQLDatabase *iDatabaseConnector, const std::string &TableName, const std::string &ColumnName, const std::string &fieldOne, const std::list< unsigned int > &ListValuesOne, const std::string &fieldTwo, const std::string &ValueFieldTwo)
 SELECT ColumnName FROM TableName WHERE (field1 = value1 or field = value2 AND fieldTwo = ValueFieldTwo ) This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
QGOIO_EXPORT std::vector
< std::string > 
ListSpecificValuesForRow (vtkMySQLDatabase *DatabaseConnector, const std::string &TableName, const std::string &field, const std::string &value)
 SELECT * FROM TableName WHERE field = value. More...
 
QGOIO_EXPORT std::vector
< std::pair< std::string,
std::string > > 
ListSpecificValuesForTwoColumns (vtkMySQLDatabase *DatabaseConnector, const std::string &TableName, const std::string &ColumnNameOne, const std::string &ColumnNameTwo, const std::string &field, const std::string &value, const std::string &ColumnNameOrder)
 SELECT ColumnNameOne,ColumnName2 FROM TableName WHERE field = value ORDER BY ColumnNameOrder ASC". More...
 
QGOIO_EXPORT std::vector
< std::pair< int, std::string > > 
ListSpecificValuesForTwoColumnsAndTwoTables (vtkMySQLDatabase *DatabaseConnector, const std::string &TableOne, const std::string &ColumnOne, const std::string &TableTwo, const std::string &ColumnTwo, const std::string &ForeignKey, const std::string &PrimaryKey, const std::string &field, const std::string &value)
 
QGOIO_EXPORT
boost::unordered_map
< std::string, std::string > 
MapTwoColumnsFromTable (vtkMySQLDatabase *DatabaseConnector, const std::vector< std::string > &iColumnNames, const std::string &iTableName, std::string iField="", std::string iValue="")
 query: "SELECT ColumnName1, ColumnName2 FROM TableName" More...
 
QGOIO_EXPORT int MaxValueForOneColumnInTable (vtkMySQLDatabase *DatabaseConnector, const std::string &ColumnName, const std::string &TableName, const std::string &field, const std::vector< std::string > &VectorValues)
 SELECT MAX(ColumnName) FROM TableName WHERE (field = value1 or field = value2....". More...
 
QGOIO_EXPORT int MaxValueForOneColumnInTable (vtkMySQLDatabase *DatabaseConnector, const std::string &ColumnName, const std::string &TableName)
 SELECT MAX(ColumnName) FROM TableName This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
QGOIO_EXPORT int MaxValueForOneColumnInTable (vtkMySQLDatabase *DatabaseConnector, const std::string &ColumnName, const std::string &TableName, const std::string &field, const std::string &value)
 SELECT MAX(ColumnName) FROM TableName WHERE field = value This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
QGOIO_EXPORT int MinValueForOneColumnInTable (vtkMySQLDatabase *DatabaseConnector, const std::string &ColumnName, const std::string &TableName, const std::string &field, const std::vector< std::string > &VectorValues)
 SELECT MIN(ColumnName) FROM TableName WHERE (field = value1 or field = value2....". More...
 
QGOIO_EXPORT void ModifyStructureWithSpecificities (ContourMeshStructure &ioStructure, unsigned int iTCoord, const std::string &iPoints, const std::string &iTraceName)
 fill the TCoord and the attributes of the structure obtained from Points More...
 
QGOIO_EXPORT void ModifyStructureWithSpecificities (TrackStructure &ioStructure, unsigned int iTCoord, const std::string &iPoints, const std::string &iTraceName)
 
QGOIO_EXPORT void ModifyStructureWithSpecificities (LineageStructure &ioStructure, unsigned int iTrackRootID, const std::string &iPoints, const std::string &iTraceName)
 
QGOIO_EXPORT int NumberOfElementForGivenImagingSessionAndTrace (vtkMySQLDatabase *DatabaseConnector, unsigned int iImagingSession, const std::string &iTrace)
 
QGOIO_EXPORT int NumberOfElementForGivenImagingSessionAndTraceForGivenTimePoint (vtkMySQLDatabase *DatabaseConnector, unsigned int iImagingSession, const std::string &iTrace, int iTimePoint)
 
QGOIO_EXPORT std::string ReturnOnlyOneValue (vtkMySQLDatabase *DatabaseConnector, const std::string &TableName, const std::string &ColumnName, const std::string &field, const std::string &value)
 SELECT ColunmName FROM TableName WHERE field=value limit 1. More...
 
QGOIO_EXPORT std::vector
< std::pair< std::string,
std::string > > 
VectorTwoColumnsFromTable (vtkMySQLDatabase *DatabaseConnector, const std::string &ColumnNameOne, const std::string &ColumnNameTwo, const std::string &TableName, const std::string &OrderByColumnName)
 SELECT ColumnNameOne,ColumnNameTwo FROM TableName ORDER BY ColumnName ASC. More...
 
QGOIO_EXPORT std::string WhereAndOrConditions (const std::vector< std::string > &iWhereAndConditions, bool iAnd=true)
 

Function Documentation

template<typename T >
void ExecuteQueryAndModifyListStructure ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iQueryString,
std::list< T > &  ioListStructure,
const std::string &  iTableOne 
)

execute iQueryString and put the results in a list of T structure

Parameters
[in]iDatabaseConnector
[in]iQueryStringquery to execute
[in,out]ioListStructurelist to be filled with the results of the query
[in]iTableOnename of the main table (usually a trace name)
Template Parameters
ContourMeshStructureor TrackStructure
Note
For the visualization rgba values are supposed to be double in between 0 and 1; whereas in the database these values are in between 0 and 255.

Definition at line 394 of file SelectQueryDatabaseHelper.h.

template<class TResultsQuery >
TResultsQuery ExecuteSelectQuery ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iQuery 
)
inline

Definition at line 627 of file SelectQueryDatabaseHelper.h.

template<class T >
T ExecuteSelectQueryOneValue ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iQuery 
)

Definition at line 662 of file SelectQueryDatabaseHelper.h.

QGOIO_EXPORT int FindOneID ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  TableName,
const std::string &  ColumnName,
const std::string &  field,
const std::string &  value 
)

SELECT ColumnName FROM TableName WHERE field = value.

Parameters
[in]DatabaseConnectorconnection to the database
[in]TableNamename of the database table
[in]ColumnNamename of the field in the database
[in]fieldfield for the condition
[in]valuevalue of the condition
Returns
only one ID

Definition at line 170 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT int FindOneID ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  TableName,
const std::string &  ColumnName,
const std::vector< FieldWithValue > &  iConditions 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]iConditionsvector of fields = values

Definition at line 200 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > FindSeveralIDs ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  TableName,
const std::string &  ColumnName,
const std::vector< FieldWithValue > &  iConditions 
)

"SELECT ColumnName FROM TableName WHERE (field1 = value1 AND field2 = value2...);

Parameters
[in]DatabaseConnectorconnection to the database
[in]TableNamename of the database table
[in]ColumnNamename of the field in the database
[in]iConditionsvector of fields = values
Returns
all the values in ColumnName that fit the conditions

Definition at line 222 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list<unsigned int> GetAllSelectedValuesFromTwoTables ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::string &  iColumn,
const FieldWithValue iJoinCondition,
const std::vector< FieldWithValue > &  iFieldsWithValues,
bool  Distinct = false 
)

Definition at line 1262 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector<std::string> GetAllSelectedValuesFromTwoTables ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::vector< std::string > &  iListAttributes,
const FieldWithValue iJoinCondition,
const std::vector< FieldWithValue > &  iFieldsWithValues,
std::string  iConditionConnector = "AND",
std::string  ColumnNameOrder = "" 
)

Definition at line 1282 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list< unsigned int > GetAllSelectedValuesFromTwoTables ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::string &  iColumn,
const FieldWithValue iJoinCondition,
const std::string &  iField,
const std::vector< std::string > &  iVectorValues,
bool  Distinct = false,
bool  NonNULLRows = false 
)

Definition at line 1309 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list< unsigned int > GetAllSelectedValuesFromTwoTables ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::string &  iColumn,
const FieldWithValue iJoinCondition,
const std::string &  iField,
const std::vector< std::string > &  iVectorValues,
const FieldWithValue iAndCondition 
)

Definition at line 1329 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list<unsigned int> GetAllSelectedValuesFromTwoTables ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::vector< std::string > &  iSelectedFields,
const FieldWithValue iJoinCondition,
const std::string &  iField,
const std::string &  iValue,
bool  NonNULLRows 
)

Definition at line 1356 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list< double* > GetCenterBoundingBoxes ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  iTableName,
const std::string &  iField,
const std::string &  iValue 
)

Definition at line 1613 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list< unsigned int > GetColumnForBoundedValue ( const std::string &  iColumnName,
const std::string &  TableName,
const std::string &  iImgSessionID,
const std::string &  iCoordType,
const std::string &  iValue,
vtkMySQLDatabase *  DatabaseConnector 
)

Definition at line 1140 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::string GetCoordinateValuesQueryString ( const std::string &  iTableName,
const std::string &  iField,
const std::string &  iValue,
bool  iMin 
)

Definition at line 1481 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list< unsigned int > GetDoublonValuesFromTwoTables ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::string &  iColumn,
const FieldWithValue iJoinCondition,
const std::string &  iField,
const std::vector< std::string > &  iVectValues 
)

Definition at line 1430 of file SelectQueryDatabaseHelper.cxx.

template<typename T >
void GetInfoFromDBAndModifyListStructure ( std::list< T > &  ioListStructure,
vtkMySQLDatabase *  iDatabaseConnector,
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 from (tableone left join tabletwo ijoinconditionone) left join tablethree ijoinconditiontwo where (ifieldone = ivaluefieldone and (iIDfieldname = ivectids1 or ivectids2...) );

Parameters
[in]iDatabaseConnectorconnection to the database
[in,out]ioListStructurelist of Structure to be filled
[in]iSelectedAttributesvector of all the attributes to be fetched from the db
[in]iTableOnemain table involved (usually the table for the trace)
[in]iTableTwotable attached to the main table
[in]iTableThreetable attached to the main table
[in]iJoinConditionOnedescribes how the tabletwo is attached to the main table
[in]iJoinConditionTwodescribes how the tablethree is attached to the main table
[in]iFieldOnefirst condition
[in]iValueFieldOnevalue for the first condition
[in]iIDFieldNamefield for the IDName where there is a condition
[in]iListIDsvalues for the iIDFieldname

Definition at line 463 of file SelectQueryDatabaseHelper.h.

QGOIO_EXPORT std::list<unsigned int> GetListValuesFromTwoTablesAndCondition ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::string &  iColumn,
const FieldWithValue iJoinCondition,
const std::string &  iField,
const std::vector< std::string > &  iVectorValues,
const FieldWithValue iAndCondition 
)

Definition at line 1403 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT int GetMaxValueFromTwoTables ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::string &  iColumn,
const FieldWithValue iJoinCondition,
const std::string &  iField,
const std::vector< std::string > &  iVectorValues,
const FieldWithValue iAndCondition 
)

Definition at line 1374 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > GetOrderByWithLimit ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  iColumnName,
const std::string &  iTableName,
const std::string &  iField,
const std::string &  iValue,
bool  ASC,
const std::string &  iNumberLimit 
)

Definition at line 1452 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > GetSamefieldFromTwoTables ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::string &  iColumn,
const std::string &  iField,
const std::string &  iValue,
const std::string &  iFieldTwo,
const std::vector< std::string > &  iListConditionsTwo 
)

Definition at line 830 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > GetSameFieldsFromSeveralTables ( vtkMySQLDatabase *  DatabaseConnector,
const std::vector< std::string > &  iColumnNames,
const std::vector< std::string > &  iVectorTablesNames,
const std::vector< std::string > &  iVectorConditionFieldNames,
const std::vector< std::vector< std::string > > &  iVectorConditionsValues 
)

Definition at line 995 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > GetSamefieldsFromTwoTables ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::string &  iColumnOne,
const std::string &  iColumnTwo,
const std::string &  iField,
const std::string &  iValue 
)

Definition at line 896 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > GetSamefieldsFromTwoTables ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const std::string &  iColumnOne,
const std::string &  iColumnTwo,
const std::string &  iField,
const std::string &  iValue,
const std::string &  iFieldTwo,
const std::vector< std::string > &  iListConditionsTwo 
)

Definition at line 944 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > GetSpecificValueFromOneTableWithConditionsOnTwoColumns ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  iColumnName,
const std::string &  iTableName,
const std::string &  iFieldOne,
const std::vector< std::string > &  iVectorConditionFieldOne,
const std::string &  iFieldTwo,
const std::vector< std::string > &  iVectorConditionFieldTwo 
)

Definition at line 1065 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list< unsigned int > GetSpecificValuesEqualToZero ( vtkMySQLDatabase *  iDatabaseConnection,
const std::string &  iColumnName,
const std::string &  iTableName,
const std::vector< std::string > &  iVectorConditionFieldOne,
const std::string &  iFieldTwo 
)
Todo:
Lydie: check when several meshesID are in the query

Definition at line 1214 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list< unsigned int > GetTwoFieldsFromTwoTables ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  iTableOne,
const std::string &  iTableTwo,
const FieldWithValue iOnCondition,
const std::string &  iColumnOne,
const std::string &  iColumnTwo,
const std::string &  iField,
const std::vector< std::string > &  iListValues,
bool  Distinct 
)

Definition at line 875 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::vector< std::string > > GetValuesFromSeveralTables ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  MainTable,
const std::vector< std::string > &  SelectFields,
const std::string &  field,
const std::string &  value,
const std::vector< std::string > &  JoinTablesOnTraceTable,
bool  Distinct 
)

Definition at line 583 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::vector< std::string > > GetValuesFromSeveralTables ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  MainTable,
const std::vector< std::string > &  SelectFields,
const std::vector< std::string > &  WhereAndConditions,
const std::vector< std::string > &  JoinTablesOnTraceTable,
bool  Distinct 
)

Definition at line 746 of file SelectQueryDatabaseHelper.cxx.

std::vector< std::vector< std::string > > GetValuesFromSeveralTables ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  MainTable,
const std::vector< std::string > &  SelectFields,
const std::string &  field,
const std::string &  value,
const std::vector< std::string > &  JoinTablesOnTraceTable,
bool  Distinct,
const std::vector< FieldWithValue > &  iWhereOrConditions 
)

Definition at line 658 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > ListAllValuesForOneColumn ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  ColumnName,
const std::string &  TableName,
std::string  OrderByColumnName = "" 
)

SELECT ColumnName from TableName ORDER BY OrderbyColumnName.

Parameters
[in]DatabaseConnectorconnection to the database
[in]ColumnNamename of the field in the database
[in]TableNamename of the database table
in]OrderByColumnName sorting
Returns
all the values for the column sorted or not

Definition at line 50 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > ListSpecificValuesForOneColumn ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  TableName,
const std::string &  ColumnName,
const std::string &  field,
const std::string &  value,
bool  ExcludeZero = false 
)

SELECT ColumnName FROM TableName WHERE field = value and ColumnName <> 0 (if excludezero)

Parameters
[in]iDatabaseConnectorconnection to the database
[in]TableNamename of the database table
[in]ColumnNamename of the field in the database
[in]fieldfield for the condition
[in]valuevalue of the condition
[in]distinctset to true if doublon are not allowed
[in]ExcludeZeroset to true if ColumnName has to be different than 0
Returns
all the values in ColumnName that fit the conditions

Definition at line 236 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > ListSpecificValuesForOneColumn ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  TableName,
const std::string &  ColumnName,
const std::string &  field,
const std::string &  value,
const std::string &  ColumnNameOrder 
)

SELECT ColumnName FROM TableName WHERE field = value ORDER BY ColumnNameOrder ASC This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]ColumnNameOrdername of the column for sorting

Definition at line 261 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > ListSpecificValuesForOneColumn ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  TableName,
const std::string &  ColumnName,
const std::string &  field,
const std::vector< std::string > &  VectorValues,
bool  Distinct = false,
bool  ExcludeZero = false 
)

SELECT ColumnName FROM TableName WHERE (field = value1 or field = value2 AND ColumnName <> 0 (if excludezero)) This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 277 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list< unsigned int > ListSpecificValuesForOneColumn ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  TableName,
const std::string &  ColumnName,
const std::string &  field,
const std::list< unsigned int > &  ListValues,
bool  Distinct = false,
bool  ExcludeZero = false 
)

SELECT ColumnName FROM TableName WHERE (field = value1 or field = value2 AND ColumnName <> 0 (if excludezero)) This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 311 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::list< unsigned int > ListSpecificValuesForOneColumn ( vtkMySQLDatabase *  iDatabaseConnector,
const std::string &  TableName,
const std::string &  ColumnName,
const std::string &  fieldOne,
const std::list< unsigned int > &  ListValuesOne,
const std::string &  fieldTwo,
const std::string &  ValueFieldTwo 
)

SELECT ColumnName FROM TableName WHERE (field1 = value1 or field = value2 AND fieldTwo = ValueFieldTwo ) This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 351 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::string > ListSpecificValuesForRow ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  TableName,
const std::string &  field,
const std::string &  value 
)

SELECT * FROM TableName WHERE field = value.

Definition at line 157 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::pair< std::string, std::string > > ListSpecificValuesForTwoColumns ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  TableName,
const std::string &  ColumnNameOne,
const std::string &  ColumnNameTwo,
const std::string &  field,
const std::string &  value,
const std::string &  ColumnNameOrder 
)

SELECT ColumnNameOne,ColumnName2 FROM TableName WHERE field = value ORDER BY ColumnNameOrder ASC".

Parameters
[in]iDatabaseConnectorconnection to the database
[in]TableNamename of the database table
[in]ColumnNameOnename of the first field in the database
[in]ColumnNameTwoname of the second field in the database
[in]fieldfield for the condition
[in]valuevalue of the condition
in]OrderByColumnName sorting
Returns
a vector of pair with the values of each Column

Definition at line 375 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::pair< int, std::string > > ListSpecificValuesForTwoColumnsAndTwoTables ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  TableOne,
const std::string &  ColumnOne,
const std::string &  TableTwo,
const std::string &  ColumnTwo,
const std::string &  ForeignKey,
const std::string &  PrimaryKey,
const std::string &  field,
const std::string &  value 
)

Definition at line 513 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT boost::unordered_map< std::string, std::string > MapTwoColumnsFromTable ( vtkMySQLDatabase *  DatabaseConnector,
const std::vector< std::string > &  iColumnNames,
const std::string &  iTableName,
std::string  iField = "",
std::string  iValue = "" 
)

query: "SELECT ColumnName1, ColumnName2 FROM TableName"

Parameters
[in]DatabaseConnectorconnection to the database
[in]iColumnNamesvector[0] = ColumnName1, vector[1] = ColumnName2
[in]iTableNamename of the database table
[in]iFieldfield for the condition if there is one
[in]iValuevalue of the condition if there is one
Returns
map[Value from ColumnName1] = Value from ColumnName2

Definition at line 64 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT int MaxValueForOneColumnInTable ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  ColumnName,
const std::string &  TableName,
const std::string &  field,
const std::vector< std::string > &  VectorValues 
)

SELECT MAX(ColumnName) FROM TableName WHERE (field = value1 or field = value2....".

Parameters
[in]DatabaseConnectorconnection to the database
[in]TableNamename of the database table
[in]ColumnNamename of the field in the database
[in]fieldfield for the condition
[in]VectorValuesvalues of the condition
Returns
the max value

Definition at line 473 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT int MaxValueForOneColumnInTable ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  ColumnName,
const std::string &  TableName 
)

SELECT MAX(ColumnName) FROM TableName This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 439 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT int MaxValueForOneColumnInTable ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  ColumnName,
const std::string &  TableName,
const std::string &  field,
const std::string &  value 
)

SELECT MAX(ColumnName) FROM TableName WHERE field = value This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 455 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT int MinValueForOneColumnInTable ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  ColumnName,
const std::string &  TableName,
const std::string &  field,
const std::vector< std::string > &  VectorValues 
)

SELECT MIN(ColumnName) FROM TableName WHERE (field = value1 or field = value2....".

Parameters
[in]DatabaseConnectorconnection to the database
[in]TableNamename of the database table
[in]ColumnNamename of the field in the database
[in]fieldfield for the condition
[in]VectorValuesvalues of the condition
Returns
the minimum value

Definition at line 491 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT void ModifyStructureWithSpecificities ( ContourMeshStructure ioStructure,
unsigned int  iTCoord,
const std::string &  iPoints,
const std::string &  iTraceName 
)

fill the TCoord and the attributes of the structure obtained from Points

Parameters
[in]ioStructurestructure to be modified with TCoord and co.
[in]iTCoordone to be filled with
[in]iPointspoints from which some attributes will be calculated
[in]iTraceNamename of the trace

Definition at line 1514 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT void ModifyStructureWithSpecificities ( TrackStructure ioStructure,
unsigned int  iTCoord,
const std::string &  iPoints,
const std::string &  iTraceName 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 1556 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT void ModifyStructureWithSpecificities ( LineageStructure ioStructure,
unsigned int  iTrackRootID,
const std::string &  iPoints,
const std::string &  iTraceName 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 1594 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT int NumberOfElementForGivenImagingSessionAndTrace ( vtkMySQLDatabase *  DatabaseConnector,
unsigned int  iImagingSession,
const std::string &  iTrace 
)

Definition at line 1674 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT int NumberOfElementForGivenImagingSessionAndTraceForGivenTimePoint ( vtkMySQLDatabase *  DatabaseConnector,
unsigned int  iImagingSession,
const std::string &  iTrace,
int  iTimePoint 
)

Definition at line 1694 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::string ReturnOnlyOneValue ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  TableName,
const std::string &  ColumnName,
const std::string &  field,
const std::string &  value 
)

SELECT ColunmName FROM TableName WHERE field=value limit 1.

Parameters
[in]iDatabaseConnectorconnection to the database
[in]TableNamename of the database table
[in]ColumnNamename of the field in the database
[in]fieldfield for the condition
[in]valuevalue of the condition
Returns
only one value if several are selected

Definition at line 421 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::vector< std::pair< std::string, std::string > > VectorTwoColumnsFromTable ( vtkMySQLDatabase *  DatabaseConnector,
const std::string &  ColumnNameOne,
const std::string &  ColumnNameTwo,
const std::string &  TableName,
const std::string &  OrderByColumnName 
)

SELECT ColumnNameOne,ColumnNameTwo FROM TableName ORDER BY ColumnName ASC.

Parameters
[in]DatabaseConnectorconnection to the database
[in]ColumnNameOnefirst value of the pair
[in]ColumnNameTwosecond value of the pair
[in]TableNamename of the database table
in]OrderByColumnName sorting
Returns
all the values sorted by OrderByColumnName in a vector of pair

Definition at line 114 of file SelectQueryDatabaseHelper.cxx.

QGOIO_EXPORT std::string WhereAndOrConditions ( const std::vector< std::string > &  iWhereAndConditions,
bool  iAnd = true 
)