示例#1
0
        /// <summary>
        /// Загрузить базу данных
        /// </summary>
        /// <param name="provider">Класс реализующий сервисные функции работы с базой данных</param>
        /// <returns>Состояние базы данных после выполнение операции загрузки БД</returns>
        public static DataBaseState LoadDB(DataBaseProvider provider)
        {
            if (provider != null)
            {
                switch (State)
                {
                case DataBaseState.Loaded:

                    throw new InvalidOperationException("Не допустимая операция. Перез загрузкой БД, необходимо завершить работу с текущей.");

                case DataBaseState.Unloaded:
                case DataBaseState.Default:


                    parameters.Clear();

                    try
                    {
                        DataBaseParameter[] parames = provider.Parameters;
                        if (parames != null)
                        {
                            foreach (DataBaseParameter parameter in parames)
                            {
                                if (parameter != null)
                                {
                                    parameters.Insert(parameter);
                                }
                            }

                            _provider = provider;
                            measuring = t_measuring.Virtualize(provider.Adapter);
                        }

                        State = DataBaseState.Loaded;
                        return(State);
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message, ex);
                    }

                default:
                    break;
                }
            }

            return(DataBaseState.Default);
        }
示例#2
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();
        }
示例#3
0
        /// <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();
        }
示例#4
0
文件: DataBase.cs 项目: slawer/sgt
        /// <summary>
        /// Загрузить базу данных
        /// </summary>
        /// <param name="provider">Класс реализующий сервисные функции работы с базой данных</param>
        /// <returns>Состояние базы данных после выполнение операции загрузки БД</returns>
        public static DataBaseState LoadDB(DataBaseProvider provider)
        {
            if (provider != null)
            {
                switch (State)
                {
                    case DataBaseState.Loaded:

                        throw new InvalidOperationException("Не допустимая операция. Перез загрузкой БД, необходимо завершить работу с текущей.");

                    case DataBaseState.Unloaded:
                    case DataBaseState.Default:

                        parameters.Clear();

                        try
                        {
                            DataBaseParameter[] parames = provider.Parameters;
                            if (parames != null)
                            {
                                foreach (DataBaseParameter parameter in parames)
                                {
                                    if (parameter != null)
                                    {
                                        parameters.Insert(parameter);
                                    }
                                }

                                _provider = provider;
                                measuring = t_measuring.Virtualize(provider.Adapter);
                            }

                            State = DataBaseState.Loaded;
                            return State;
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message, ex);
                        }

                    default:
                        break;
                }
            }

            return DataBaseState.Default;
        }