示例#1
0
        //public List<LoadSymbols> GetChart1(Dameer timeFrom, Dameer timeTo, string tableName, string symbolName, bool IsRealTime)
        //{
        //    string sql;
        //    int count = 0;
        //    int i = 0;

        //    sql = "SELECT id FROM " + tableName + " WHERE Time >= '" + timeFrom.Value + "' AND Time < '" + timeTo.Value +
        //          "' AND SYMBOL = '" + symbolName + "' AND Lvl=1 ORDER BY id limit 1";
        //    i = GetFirstId(sql);
        //     sql =
        //            "SELECT Id, Time, TimeMS, Symbol, Currency, Lvl, BidP1, BidQ1, BidP2, BidQ2, BidP3, BidQ3, BidP4, BidQ4, BidP5, BidQ5, AskP1, AskQ1, AskP2, AskQ2, AskP3, AskQ3, AskP4, AskQ4, AskP5, AskQ5 FROM " +
        //            tableName + " WHERE Time >= '" + timeFrom.Value + "' AND Time < '" + timeTo.Value +
        //            "' AND SYMBOL = '" + symbolName + "' AND id >= " + i + " ORDER BY id";

        //     return ExecQueryGraph(sql);

        //}
        private int ExecQueryFprGraph(string sql)
        {
            using (NpgsqlCommand cmd = new NpgsqlCommand(sql))
            {
                cmd.Connection = _conn;
                OpenConnection("postgres", "vitaliy", "localhost", "5432");
                cmd.CommandType    = CommandType.Text;
                cmd.CommandTimeout = 0;
                int count = 0;
                try
                {
                    //using (NpgsqlDataReader reader = cmd.ExecuteReader())
                    using (NpgsqlDataReader reader = cmd.ExecuteReader())
                    {
                        LoadSymbols symbol = new LoadSymbols();
                        while (reader.Read())
                        {
                            //symbol.Id = int.Parse(reader["Id"].ToString());
                            //symbol.Time = DateTime.Parse(reader["Time"].ToString());
                            symbol.Id       = int.Parse(reader["Id"].ToString());
                            symbol.Time     = DateTime.Parse(reader["Time"].ToString());
                            symbol.Time     = symbol.Time.AddMilliseconds(double.Parse(reader["TimeMS"].ToString()));
                            symbol.Level    = int.Parse(reader["Lvl"].ToString());
                            symbol.Symbol   = reader["Symbol"].ToString();
                            symbol.Currency = reader["Currency"].ToString();
                            for (int i = 0; i < 5; i++)
                            {
                                symbol.BidPrices[i]     = double.Parse(reader["BidP" + (i + 1)].ToString());
                                symbol.AskPrices[i]     = double.Parse(reader["AskP" + (i + 1)].ToString());
                                symbol.BidQuantities[i] = int.Parse(reader["BidQ" + (i + 1)].ToString());
                                symbol.AskQuantities[i] = int.Parse(reader["AskQ" + (i + 1)].ToString());
                            }

                            //if (count > 10000)
                            //{
                            //    //if (records[count].Time < records[count - 1].Time)
                            //    {
                            //        //MessageBox.Show("urgh data is not sequenced properly: " + Streams[index].chart[count].Time.ToString(), Streams[index].SymbolName);
                            //        return (-1);
                            //    }
                            //}
                            count++;

                            //graph.ChartsList.Add(symbol);
                        }

                        return(count);
                    }
                }
                catch //(Exception ex)
                {
                    //System.Windows.Forms.MessageBox.Show(ex.Message);
                    return(0);
                }
            }
        }
示例#2
0
        private int ExecQuery(string sql)
        {
            using (NpgsqlCommand cmd = new NpgsqlCommand(sql))
            {
                cmd.Connection = _conn;
                OpenConnection("postgres", "vitaliy", "localhost", "5432");
                cmd.CommandType    = CommandType.Text;
                cmd.CommandTimeout = 0;
                int count = 0;
                try
                {
                    using (NpgsqlDataReader reader = cmd.ExecuteReader())
                    {
                        LoadSymbols symbol = new LoadSymbols();
                        while (reader.Read())
                        {
                            symbol.Time     = DateTime.Parse(reader["Time"].ToString());
                            symbol.Time     = symbol.Time.AddMilliseconds(double.Parse(reader["TimeMS"].ToString()));
                            symbol.Level    = int.Parse(reader["Lvl"].ToString());
                            symbol.Symbol   = reader["Symbol"].ToString();
                            symbol.Currency = reader["Currency"].ToString();
                            for (int i = 0; i < 5; i++)
                            {
                                symbol.BidPrices[i]     = double.Parse(reader["BidP" + (i + 1)].ToString());
                                symbol.AskPrices[i]     = double.Parse(reader["AskP" + (i + 1)].ToString());
                                symbol.BidQuantities[i] = int.Parse(reader["BidQ" + (i + 1)].ToString());
                                symbol.AskQuantities[i] = int.Parse(reader["AskQ" + (i + 1)].ToString());
                            }
                            graph.ChartsList.Add(symbol);
                            if (count > 10000)
                            {
                                if (graph.ChartsList[count].Time < graph.ChartsList[count - 1].Time)
                                {
                                    return(-1);
                                }
                            }
                            count++;

                            //Application.DoEvents();
                        }
                        return(count);
                    }
                }
                catch //(Exception ex)
                {
                    //System.Windows.Forms.MessageBox.Show(ex.Message);
                    return(0);
                }
            }
        }
示例#3
0
        private int ExecQuery(int index, string sql)
        {
            using (NpgsqlCommand cmd = new NpgsqlCommand(sql))
            {
                cmd.Connection     = parse[index].connection;
                cmd.CommandType    = CommandType.Text;
                cmd.CommandTimeout = 0;
                int count = 0;
                try
                {
                    using (NpgsqlDataReader reader = cmd.ExecuteReader())
                    {
                        LoadSymbols symbol = new LoadSymbols();
                        while (reader.Read())
                        {
                            //InitSymbolSet(ref symbol, Streams[index].SymbolName, Streams[index].Digits);
                            symbol.Time  = DateTime.Parse(reader["Time"].ToString());
                            symbol.Time  = symbol.Time.AddMilliseconds(double.Parse(reader["TimeMS"].ToString()));
                            symbol.Level = int.Parse(reader["Lvl"].ToString());
                            for (int i = 0; i < 6 - 1; i++)
                            {
                                symbol.BidPrices[i]     = double.Parse(reader["BidP" + (i + 1)].ToString());
                                symbol.AskPrices[i]     = double.Parse(reader["AskP" + (i + 1)].ToString());
                                symbol.BidQuantities[i] = int.Parse(reader["BidQ" + (i + 1)].ToString());
                                symbol.AskQuantities[i] = int.Parse(reader["AskQ" + (i + 1)].ToString());
                            }
                            parse[index].chart.Add(symbol);

                            if (count > 100001)
                            {
                                if (parse[index].chart[count].Time < parse[index].chart[count - 1].Time)
                                {
                                    //MessageBox.Show("urgh data is not sequenced properly: " + Streams[index].chart[count].Time.ToString(), Streams[index].SymbolName);
                                    return(-1);
                                }
                            }
                            count++;

                            //Application.DoEvents();
                        }
                        return(count);
                    }
                }
                catch //(Exception ex)
                {
                    //System.Windows.Forms.MessageBox.Show(ex.Message);
                    return(0);
                }
            }
        }