Exemplo n.º 1
0
        protected DataBaseAdapter adapter; // адаптер сервера баз данных

        #endregion Fields

        #region Constructors

        /// <summary>
        /// инициализирует новый экземпляр класса
        /// </summary>
        /// <param name="_adapter">Адаптер для сервреа баз данных</param>
        public DataBaseProvider(DataBaseAdapter _adapter)
        {
            if (_adapter != null)
            {
                adapter = _adapter;
            }
        }
Exemplo n.º 2
0
        private long lastTime; // последнее добавленное значение времени в таблицу

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        /// <param name="Adapter">Адаптер БД</param>
        internal t_measuring(DataBaseAdapter Adapter)
        {
            lastId = -1;
            lastDept = -1;

            lastTime = 0;

            adapter = Adapter;
        }
Exemplo n.º 3
0
        private DataBaseStructure structure = null; // хранить структуру БД

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        public DataBase(DataBaseAdapter adap)
        {
            adapter = adap;

            structure = new DataBaseStructure();
            parameters = new DataBaseParameters(1024);

            saver = new DataBaseSaver(adapter, parameters);
        }
Exemplo n.º 4
0
        private DataBaseState state; // текущее состояние БД

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        public DataBaseManager()
        {
            mutex = new Mutex();
            state = DataBaseState.Default;

            adapter = new DataBaseAdapter();
            server = new DataBaseServer(adapter);

            dataBase = new DataBase(adapter);
            server = new DataBaseServer(adapter);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        /// <param name="info">Объект System.Runtime.Serialization.SerializationInfo для извлечения данных.</param>
        /// <param name="context">Целевое местоположение сериализации.</param>
        protected DataBaseManager(SerializationInfo info, StreamingContext context)
        {
            mutex = new Mutex();
            state = DataBaseState.Default;

            adapter = new DataBaseAdapter();

            adapter.UserID = info.GetString("UserID");
            adapter.Password = info.GetString("Password");

            server = new DataBaseServer(adapter);

            dataBase = new DataBase(adapter);
            server = new DataBaseServer(adapter);
        }
Exemplo n.º 6
0
        protected ReaderWriterLockSlim t_slim; // синхронизатор таймера

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        public DataBaseManager()
        {
            state = DBState.Default;

            adapter = new DataBaseAdapter(".", "", "sa", "");
            provider = new DataBaseProvider(adapter);

            saver = new DataBaseSaver();

            is_valid = false;
            timer = new Timer(TimerCallback, null, 0, 5000);

            slim = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
            t_slim = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

            DataBase.Initialize();
        }
Exemplo n.º 7
0
            /// <summary>
            /// Виртуализируем таблицу времени
            /// </summary>
            /// <param name="Adapter">Объет определяющий подключение к БД</param>
            /// <returns>В случае успеха виртуализировнная таблица времени, в противном случае null</returns>
            public static t_measuring Virtualize(DataBaseAdapter Adapter)
            {
                SqlConnection connection = null;

                try
                {
                    connection = new SqlConnection(Adapter.ConnectionString);
                    connection.Open();

                    if (connection.State == ConnectionState.Open)
                    {
                        using (SqlCommand command = connection.CreateCommand())
                        {
                            command.CommandText = string.Format("Select * From {0} Order By id Desc", "dbo.t_measuring");
                            using (SqlDataReader reader = command.ExecuteReader())
                            {
                                t_measuring measuring = new t_measuring(Adapter);

                                measuring.LastId   = 0;
                                measuring.LastTime = DateTime.Now.Ticks;

                                measuring.LastDept = 0.0f;

                                if (reader != null)
                                {
                                    if (reader.IsClosed == false)
                                    {
                                        while (reader.Read())
                                        {
                                            measuring.LastId = reader.GetInt32(0);

                                            DateTime t = DateTime.FromOADate(reader.GetDouble(1));
                                            measuring.LastTime = t.Ticks;

                                            measuring.LastDept = 0.0f;
                                            break;
                                        }
                                    }

                                    return(measuring);
                                }
                                else
                                {
                                    throw new Exception("Не удалось загрузить таблицу времени из БД");
                                }
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("Не удалось установить соединение с БД");
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message, ex);
                }
                finally
                {
                    if (connection != null)
                    {
                        if (connection.State == ConnectionState.Open)
                        {
                            connection.Close();
                        }

                        connection.Dispose();
                    }
                }
            }
Exemplo n.º 8
0
        /// <summary>
        /// Виртуализируем таблицу времени
        /// </summary>
        /// <param name="Adapter">Объет определяющий подключение к БД</param>
        /// <returns>В случае успеха виртуализировнная таблица времени, в противном случае null</returns>
        public static t_measuring Virtualize(DataBaseAdapter Adapter)
        {
            SqlConnection connection = null;
            try
            {
                connection = new SqlConnection(Adapter.ConnectionString);
                connection.Open();

                if (connection.State == ConnectionState.Open)
                {
                    SqlCommand command = connection.CreateCommand();

                    command.CommandText = string.Format("Select * From {0} Order By id Desc", "dbo.t_measuring");
                    SqlDataReader reader = command.ExecuteReader();

                    t_measuring measuring = new t_measuring(Adapter);

                    measuring.LastId = 0;
                    measuring.LastTime = DateTime.Now.Ticks;

                    measuring.LastDept = 0.0f;

                    if (reader != null)
                    {
                        if (reader.IsClosed == false)
                        {
                            while (reader.Read())
                            {
                                measuring.LastId = reader.GetInt32(0);

                                DateTime t = DateTime.FromOADate(reader.GetDouble(1));
                                measuring.LastTime = t.Ticks;

                                measuring.LastDept = 0.0f;
                                break;
                            }
                        }

                        return measuring;
                    }
                    else
                        throw new Exception("Не удалось загрузить таблицу времени из БД");
                }
                else
                    throw new Exception("Не удалось установить соединение с БД");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                if (connection != null)
                {
                    if (connection.State == ConnectionState.Open)
                    {
                        connection.Close();
                    }

                    connection.Dispose();
                }
            }
        }
Exemplo n.º 9
0
        private DataBaseAdapter adapter = null; // предоставляет сервисные функции и методы для работу с сервером БД

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        /// <param name="Adapter">Адаптер подключения к серверу</param>
        public DataBaseServer(DataBaseAdapter Adapter)
        {
            adapter = Adapter;
        }
Exemplo n.º 10
0
        /// <summary>
        /// Инициализировать базу данных
        /// </summary>
        /// <param name="_adapter">Алаптер базы данных</param>
        protected void InitializeDataBase(DataBaseAdapter _adapter)
        {
            SqlConnection connection = null;
            try
            {
                connection = new SqlConnection(_adapter.ConnectionString);
                connection.Open();

                if (connection.State == ConnectionState.Open)
                {
                    using (SqlCommand command = new SqlCommand(sql_query_insert_first_param, connection))
                    {
                        command.ExecuteNonQuery();
                    }
                }
                else
                    throw new Exception("Не удалось подключиться к серверу.Таблицы не созданы.");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                if (connection != null)
                {
                    if (connection.State == ConnectionState.Open)
                    {
                        connection.Close();
                        SqlConnection.ClearPool(connection);
                    }

                    connection.Dispose();
                }
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Создать индекс для таблицы времени
        /// </summary>
        /// <param name="_adapter">Адаптер БД</param>
        protected void CreateInsexInTimeTable(DataBaseAdapter _adapter)
        {
            SqlConnection connection = null;
            try
            {
                connection = new SqlConnection(_adapter.ConnectionString);
                connection.Open();

                if (connection.State == ConnectionState.Open)
                {
                    using (SqlCommand command = new SqlCommand("CREATE INDEX time_index ON dbo.t_measuring(val_Time)", connection))
                    {
                        command.ExecuteNonQuery();
                    }
                }
                else
                    throw new Exception("Не удалось подключиться к серверу.Таблицы не созданы.");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                if (connection != null)
                {
                    if (connection.State == ConnectionState.Open)
                    {
                        connection.Close();
                        SqlConnection.ClearPool(connection);
                    }

                    connection.Dispose();
                }
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// Создать базу данных
        /// </summary>
        /// <param name="dataBaseName">Имя создаваемой базы данных</param>
        public void CreateDataBase(string dataBaseName)
        {
            SqlConnection connection = null;
            try
            {
                connection = new SqlConnection(adapter.ConnectionStringToServer);
                connection.Open();

                if (connection.State == ConnectionState.Open)
                {
                    string sql_query = string.Format("CREATE DATABASE {0}", dataBaseName);
                    SqlCommand cmd = connection.CreateCommand();

                    cmd.CommandText = sql_query;
                    cmd.ExecuteNonQuery();

                    // -------- тут необходимо создать таблицы --------

                    DataBaseAdapter _adapter = new DataBaseAdapter(adapter.DataSource, dataBaseName, adapter.UserID, adapter.Password);

                    InsertTable(_adapter, sql_query_create_main_table);     // создаем главную таблицу БД

                    InsertTable(_adapter, sql_query_create_time_table);     // создаем таблицу времен параметров в БД
                    CreateInsexInTimeTable(_adapter);                       // создать индекс для таблицы времен

                    InsertTable(_adapter, sql_query_create_param_table);    // создаем служебную таблицу для БД
                    InitializeDataBase(_adapter);                           // инициализировать базу данных
                }
                else
                    throw new Exception("Не удалось подключиться к серверу.");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                if (connection != null)
                {
                    if (connection.State == ConnectionState.Open)
                    {
                        connection.Close();
                        SqlConnection.ClearPool(connection);
                    }

                    connection.Dispose();
                }
            }
        }
Exemplo n.º 13
0
 /// <summary>
 /// Инициализировать 
 /// </summary>
 /// <param name="adap">Адаптер БД</param>
 /// <param name="parames">Параметры загруженные из БД</param>
 internal void Inialize(DataBaseAdapter adap, DataBaseParameters parames)
 {
     adapter = adap;
     parameters = parames;
 }
Exemplo n.º 14
0
        private int timeToBuffer = 1000; // частота сохранения параметров в БД

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Инициализирует новый класс
        /// </summary>
        /// <param name="Adapted">Адаптер БД</param>
        public DataBaseSaver(DataBaseAdapter Adapted, DataBaseParameters Parameters)
        {
            adapter = Adapted;
            parameters = Parameters;

            in_out_mutex = new Mutex();
            callBackMutex = new Mutex();

            input = new List<DataBaseParameterValue>();
            output = new List<DataBaseParameterValue>();

            callBackMutex = new Mutex();
            timer = new Timer(TimerCallback, null, Timeout.Infinite, timeToBuffer);

            mutex = new Mutex();
        }
Exemplo n.º 15
0
        private DataBaseAdapter adapter = null;                  // предоставляет сервисные функции и методы для работу с сервером БД

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        /// <param name="Adapter">Адаптер подключения к серверу</param>
        public DataBaseServer(DataBaseAdapter Adapter)
        {
            adapter = Adapter;
        }
Exemplo n.º 16
0
 /// <summary>
 /// Инициализировать
 /// </summary>
 /// <param name="adap">Адаптер БД</param>
 /// <param name="parames">Параметры загруженные из БД</param>
 internal void Inialize(DataBaseAdapter adap, DataBaseParameters parames)
 {
     adapter    = adap;
     parameters = parames;
 }