Exemple #1
0
        private static void logging_open_db(DbConnection conn)
        {
            string s = ConnectionStringToLog(conn.ConnectionString);

            Logging.Logg().Debug(MessageDbOpen + " (" + s + ")", Logging.INDEX_MESSAGE.NOT_SET, true);
        }
        public ConnectionSettingsError Validate()
        {
            try {
                IPAddress ip;
                ip = IPAddress.Parse(server);
                if (IPAddress.TryParse(server, out ip) == false)
                {
                    //MessageBox.Show("Неправильный ip-адрес.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return ConnectionSettingsError.WrongIp;
                }
            }
            catch (Exception e) {
                Logging.Logg().Exception(e, @"ConnectionSettings::Validate() - ...");
            }

            if (port > 65535)
            {
                //MessageBox.Show("Порт должен лежать в пределах [0:65535].", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return ConnectionSettingsError.WrongPort;
            }

            if (dbName == "")
            {
                //MessageBox.Show("Не задано имя базы данных.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return ConnectionSettingsError.WrongDbName;
            }

            if (dbName.IndexOf('\'') >= 0 ||
                dbName.IndexOf('\"') >= 0 ||
                dbName.IndexOf('\\') >= 0 ||
                dbName.IndexOf('/') >= 0 ||
                dbName.IndexOf('?') >= 0 ||
                dbName.IndexOf('<') >= 0 ||
                dbName.IndexOf('>') >= 0 ||
                dbName.IndexOf('*') >= 0 ||
                dbName.IndexOf('|') >= 0 ||
                dbName.IndexOf(':') >= 0 ||
                dbName.IndexOf(';') >= 0)
            {
                //MessageBox.Show("Недопустимый символ в имени базы.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return ConnectionSettingsError.IllegalSymbolDbName;
            }

            if (userName.IndexOf('\'') >= 0 ||
                userName.IndexOf('\"') >= 0 ||
                userName.IndexOf('\\') >= 0 ||
                userName.IndexOf('/') >= 0 ||
                userName.IndexOf('?') >= 0 ||
                userName.IndexOf('<') >= 0 ||
                userName.IndexOf('>') >= 0 ||
                userName.IndexOf('*') >= 0 ||
                userName.IndexOf('|') >= 0 ||
                userName.IndexOf(':') >= 0 ||
                userName.IndexOf(';') >= 0)
            {
                //MessageBox.Show("Недопустимый символ в имени пользователя.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return ConnectionSettingsError.IllegalSymbolUserName;
            }

            if (password.IndexOf('\'') >= 0 ||
                password.IndexOf('\"') >= 0 ||
                password.IndexOf('\\') >= 0 ||
                password.IndexOf('/') >= 0 ||
                password.IndexOf('?') >= 0 ||
                password.IndexOf('<') >= 0 ||
                password.IndexOf('>') >= 0 ||
                password.IndexOf('*') >= 0 ||
                password.IndexOf('|') >= 0 ||
                password.IndexOf(':') >= 0 ||
                password.IndexOf(';') >= 0)
            {
                //MessageBox.Show("Недопустимый символ в пароле пользователя.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return ConnectionSettingsError.IllegalSymbolPassword;
            }

            //if (DbTSQLInterface.Select(this, "SELECT * FROM TEC_LIST").Rows.Count > 0)
            //    return ConnectionSettingsError.NotConnect;
            //else
            //    ;

            return ConnectionSettingsError.NoError;
        }
Exemple #3
0
        private static void logging_close_db(DbConnection conn)
        {
            string s = ConnectionStringToLog(conn.ConnectionString);

            Logging.Logg().Debug(MessageDbClose + " (" + s + ")", Logging.INDEX_MESSAGE.NOT_SET);
        }
Exemple #4
0
        private void DbInterface_ThreadFunction(object data)
        {
            object request;
            bool   result;
            bool   reconnection /* = false*/;

            while (threadIsWorking)
            {
                sem.WaitOne();

                lock (lockConnectionSettings) // атомарно читаю и сбрасываю флаг, чтобы при параллельной смене настроек не сбросить повторно выставленный флаг
                {
                    reconnection  = needReconnect;
                    needReconnect = false;
                }

                if (reconnection == true)
                {
                    Disconnect();
                    connected = false;
                    if ((threadIsWorking == true) && (Connect() == true))
                    {
                        connected = true;
                    }
                    else
                    {
                        needReconnect = true; // выставлять флаг можно без блокировки
                    }
                }
                else
                {
                    ;
                }

                if (connected == false) // не удалось подключиться - не пытаемся получить данные
                {
                    continue;
                }
                else
                {
                    ;
                }

                //Logging.Logg().Debug("DbInterface::DbInterface_ThreadFunction () - m_listListeners.Count = " + m_listListeners.Count);

                lock (lockListeners)
                {
                    foreach (KeyValuePair <int, DbInterfaceListener> pair in m_dictListeners)
                    {
                        //lock (lockListeners)
                        //{
                        if (pair.Value.listenerActive == false)
                        {
                            continue;
                        }
                        else
                        {
                            ;
                        }

                        request = pair.Value.requestDB;

                        if ((request == null) || (!(request.ToString().Length > 0)))
                        {
                            continue;
                        }
                        else
                        {
                            ;
                        }
                        //}

                        //Logging.Logg().Debug("DbInterface::DbInterface_ThreadFunction () - GetData(...) - request = " + request);

                        try
                        {
                            result = GetData(pair.Value.dataTable, request);
                        }
                        catch (DbException e)
                        {
                            Logging.Logg().Exception(e, Logging.INDEX_MESSAGE.NOT_SET, "DbInterface::DbInterface_ThreadFunction () - result = GetData(...) - request = " + request);

                            result = false;
                        }

                        //Logging.Logg().Debug("DbInterface::DbInterface_ThreadFunction () - result = GetData(...) - result = " + result);

                        //lock (lockListeners)
                        //{
                        if (pair.Value.listenerActive == false)
                        {
                            continue;
                        }
                        else
                        {
                            ;
                        }

                        //Logging.Logg().Debug("DbInterface::DbInterface_ThreadFunction () - result = GetData(...) - pair.Value.listenerActive = " + pair.Value.listenerActive);

                        if (request == pair.Value.requestDB)
                        {
                            pair.Value.dataPresent = result;
                            pair.Value.dataError   = !result;

                            //if (result == true)
                            //{
                            //    pair.Value.dataPresent = true;
                            //}
                            //else
                            //{
                            //    pair.Value.dataError = true;
                            //}

                            pair.Value.requestDB = null;
                        }
                        else
                        {
                            ;
                        }

                        //Logging.Logg().Debug("DbInterface::DbInterface_ThreadFunction () - result = GetData(...) - pair.Value.dataPresent = " + pair.Value.dataPresent + @", pair.Value.dataError = " + pair.Value.dataError.ToString ());
                        //}
                    }
                }
            }
            try
            {
                if (!(WaitHandle.WaitAny(new WaitHandle[] { sem }, 0) == 0))
                {
                    sem.Release(1);
                }
                else
                {
                    ;
                }
            }
            catch (Exception e)
            {
                Logging.Logg().Exception(e, Logging.INDEX_MESSAGE.NOT_SET, "DbInterface::DbInterface_ThreadFunction () - выход...");
            }

            Disconnect();
        }