// ***************************************************************** // **** Constructors **** // ***************************************************************** // // // #endregion//Constructors #region Public Methods // ***************************************************************** // **** Public Methods **** // ***************************************************************** public override string GetQuery(DatabaseInfo dataBase) { TableInfo.InstrumentsTableInfo instrumentTable = dataBase.Instruments; TableInfo.ExchangesTableInfo exchangeTable = dataBase.Exchanges; // Create a instrument expiry code. string expiryCode; if (!UV.Lib.Utilities.QTMath.TryConvertMonthYearToCodeY(InstrumentName.SeriesName, out expiryCode)) { return(string.Empty); } // TODO: Create the fields we want string desiredFields = "*";//string.Format("{0}", instrumentTable.InstrumentID ); // Create the query. StringBuilder query = new StringBuilder(); query.AppendFormat("SELECT {0} FROM {1} ", desiredFields, dataBase.Instruments.TableNameFull); query.AppendFormat("WHERE {0} in (select {1} from {2} where {3} =\'{4}\') and {5} =\'{6}\' and {7} =\'{8}\'", instrumentTable.ExchangeID, // 0 instrumentTable.ExchangeID, // 1 exchangeTable.TableNameFull, // 2 exchangeTable.ExchangeNameTT, // 3 InstrumentName.Product.Exchange, // 4 instrumentTable.Product, // 5 InstrumentName.Product.ProductName, // 6 instrumentTable.ExpirySymbol, // 7 expiryCode); // 8 query.Append(";"); return(query.ToString()); }// GetQuery();
// protected string GetQueryForData(DatabaseInfo dataBase) { TableInfo.InstrumentsTableInfo instrumentTable = dataBase.Instruments; TableInfo.ExchangesTableInfo exchangeTable = dataBase.Exchanges; TableInfo.BarsTableInfo barsTable = dataBase.Bars; // Create a instrument expiry code. string expiryCode; if (!UV.Lib.Utilities.QTMath.TryConvertMonthYearToCodeY(InstrumentName.SeriesName, out expiryCode)) { return(string.Empty); } // Create sub selection string to get instr ID from InstrumentName. StringBuilder subQuery = new StringBuilder(); int instrSqlId = m_InstrumentQuery.Results[0].InstrumentId; subQuery.AppendFormat("{0}", instrSqlId); // Create the final query. string desiredFields = "*"; StringBuilder query = new StringBuilder(); query.AppendFormat("SELECT {0} FROM {1}", desiredFields, barsTable.TableNameFull); query.AppendFormat(" WHERE {0} = ({1})", barsTable.InstrumentID, subQuery); if (this.StartDate > DateTime.MinValue) { int timestamp = (int)QTMath.DateTimeToEpoch(this.StartDate); string s = timestamp.ToString(); query.AppendFormat(" AND {0} >= {1}", barsTable.TimeStamp, s); } if (this.EndDate < DateTime.MaxValue) { int timestamp = (int)QTMath.DateTimeToEpoch(this.EndDate); string s = timestamp.ToString(); query.AppendFormat(" AND {0} <= {1}", barsTable.TimeStamp, s); } query.AppendFormat(" AND {0} = 1", barsTable.SessionCode); // currently we only want sessionCode = 1 for when products are trading query.AppendFormat(" ORDER BY {0}", barsTable.TimeStamp); if (this.StartDate == DateTime.MinValue) { // since our date time is unnasigned, lets reverse the order of our timestamps for this query so we get the proper number of rows query.AppendFormat(" DESC"); m_IsReverseOrder = true; } if (this.MaxRows > 0) { query.AppendFormat(" LIMIT {0}", this.MaxRows); } query.Append(";"); // Exit return(query.ToString()); }// GetQuery();
// ***************************************************************** // **** Public Methods **** // ***************************************************************** // // // public override string GetQuery(DatabaseInfo databaseInfo) { TableInfo.ExchangesTableInfo exchangeTable = databaseInfo.Exchanges; string desiredFields = "*"; // Create the query. StringBuilder query = new StringBuilder(); query.AppendFormat("SELECT {0} FROM {1} ", desiredFields, exchangeTable.TableNameFull); query.Append(";"); return(query.ToString()); }
// ***************************************************************** // **** Constructors **** // ***************************************************************** // // // #endregion//Constructors #region Public Methods // ***************************************************************** // **** Public Methods **** // ***************************************************************** public override string GetQuery(DatabaseInfo dataBase) { TableInfo.InstrumentsTableInfo instrumentTable = dataBase.Instruments; TableInfo.ExchangesTableInfo exchangeTable = dataBase.Exchanges; // TODO: Create the fields we want string desiredFields = "*";//string.Format("{0}", instrumentTable.InstrumentID ); // Create the query. StringBuilder query = new StringBuilder(); query.AppendFormat("SELECT {0} FROM {1} ", desiredFields, dataBase.Instruments.TableNameFull); if (string.IsNullOrEmpty(this.InstrumentName.SeriesName) == false) { // User has supplied a specific InstrumentName // Create a instrument expiry code. string expiryCode; if (!UV.Lib.Utilities.QTMath.TryConvertMonthYearToCodeY(this.InstrumentName.SeriesName, out expiryCode)) { return(string.Empty); } // NOTE : Currently this has to be future product type! // query.AppendFormat("WHERE {0} in (select {1} from {2} where {3} =\'{4}\') and {5} =\'{6}\' and {7} =\'{8}\' and {9} = \'{10}\'", instrumentTable.ExchangeID, // 0 instrumentTable.ExchangeID, // 1 exchangeTable.TableNameFull, // 2 exchangeTable.ExchangeNameTT, // 3 InstrumentName.Product.Exchange, // 4 instrumentTable.Product, // 5 InstrumentName.Product.ProductName, // 6 instrumentTable.ExpirySymbol, // 7 expiryCode, // 8 instrumentTable.ProdType, //9 InstrumentName.Product.Type.ToString().ToLower()); // 10 } else { // Sometimes, the instrument name does not contain series name. This means the user wants to get all the instruments for that product. query.AppendFormat("WHERE {0} in (select {1} from {2} where {3} =\'{4}\') and {5} =\'{6}\'", instrumentTable.ExchangeID, // 0 instrumentTable.ExchangeID, // 1 exchangeTable.TableNameFull, // 2 exchangeTable.ExchangeNameTT, // 3 InstrumentName.Product.Exchange, // 4 instrumentTable.Product, // 5 InstrumentName.Product.ProductName); // 6 } query.Append(";"); return(query.ToString()); }// GetQuery();