//Удаление из оригинальной таблицы записей не существующих в измененной таблице (обязательно наличие поля: ID)
        public static void RecDelete(ref DbConnection conn, string nameTable, string keyFields, DataTable origin, DataTable data, out int err)
        {
            err = (int)Error.NO_ERROR;

            int j = -1;

            DataRow[] dataRows;
            string[]  strQuery = new string[(int)DbTSQLInterface.QUERY_TYPE.COUNT_QUERY_TYPE];
            string    strWhere = string.Empty;

            for (j = 0; j < origin.Rows.Count; j++)
            {
                strWhere = getWhereSelect(keyFields, origin.Rows[j]);
                dataRows = data.Select(strWhere);
                if (dataRows.Length == 0)
                {
                    //DELETE
                    strQuery[(int)DbTSQLInterface.QUERY_TYPE.DELETE] = string.Empty;
                    strQuery[(int)DbTSQLInterface.QUERY_TYPE.DELETE] = "DELETE FROM " + nameTable + " WHERE " + getWhereSelect(keyFields, origin.Rows[j]);
                    DbTSQLInterface.ExecNonQuery(ref conn, strQuery[(int)DbTSQLInterface.QUERY_TYPE.DELETE], null, null, out err);
                }
                else
                {  //Ничего удалять не надо
                    if (dataRows.Length == 1)
                    {
                    }
                    else
                    {
                    }
                }
            }
        }
        //Удаление из оригинальной таблицы записей не существующих в измененной таблице (обязательно наличие поля: ID)
        public static void RecDelete(ref DbConnection conn, string nameTable, DataTable origin, DataTable data, out int err)
        {
            err = 0;

            int j = -1;

            DataRow[] dataRows;
            string[]  strQuery = new string[(int)DbTSQLInterface.QUERY_TYPE.COUNT_QUERY_TYPE];

            for (j = 0; j < origin.Rows.Count; j++)
            {
                dataRows = data.Select("ID=" + origin.Rows[j]["ID"]);
                if (dataRows.Length == 0)
                {
                    //DELETE
                    strQuery[(int)DbTSQLInterface.QUERY_TYPE.DELETE] = string.Empty;
                    strQuery[(int)DbTSQLInterface.QUERY_TYPE.DELETE] = "DELETE FROM " + nameTable + " WHERE ID=" + origin.Rows[j]["ID"];
                    DbTSQLInterface.ExecNonQuery(ref conn, strQuery[(int)DbTSQLInterface.QUERY_TYPE.DELETE], null, null, out err);
                }
                else
                {  //Ничего удалять не надо
                    if (dataRows.Length == 1)
                    {
                    }
                    else
                    {
                    }
                }
            }
        }
示例#3
0
            /// <summary>
            /// Функция добавления прав доступа для пользователя
            /// </summary>
            public static void SetAllowed(int iListenerId, int id, string val)
            {
                string query        = string.Empty;
                int    err          = -1
                , cntRows           = -1;
                DbConnection dbConn = null;

                //Проверить наличие индивидуальной записи...
                cntRows = m_tblValues.Select(@"ID_UNIT=" + id).Length;
                switch (cntRows)
                {
                case 1:     //Вставка записи...
                    query = @"INSERT INTO " + m_nameTableProfilesData + @" ([ID_EXT],[IS_ROLE],[ID_UNIT],[VALUE]) VALUES (" + Id + @",0," + id + @",'" + val + @"')";
                    break;

                case 2:     //Обновление записи...
                    query = @"UPDATE " + m_nameTableProfilesData + @" SET [VALUE]='" + val + @"' WHERE ID_EXT=" + Id + @" AND IS_ROLE=0 AND ID_UNIT=" + id;
                    break;

                default:     //Ошибка - исключение
                    throw new Exception(@"HUsers.HProfiles::SetAllowed (id=" + id + @") - не найдено ни одной записи...");
                }

                dbConn = DbSources.Sources().GetConnection(iListenerId, out err);
                if ((!(dbConn == null)) && (err == 0))
                {
                    DbTSQLInterface.ExecNonQuery(ref dbConn, query, null, null, out err);
                    //Проверить результат сохранения...
                    if (err == 0)
                    {//Обновить таблицу пользовательских настроек...
                        switch (cntRows)
                        {
                        case 1:     //Вставка записи...
                            m_tblValues.Rows.Add(new object [] { Id, 0, id, val });
                            break;

                        case 2:     //Обновление записи...
                            DataRow[] rows = m_tblValues.Select(@"ID_EXT=" + Id + @" AND IS_ROLE=0 AND ID_UNIT=" + id);
                            rows[0][@"VALUE"] = val;
                            break;

                        default:     //Ошибка - исключение
                            //Ошибка обработана - создано исключение...
                            break;
                        }
                    }
                    else
                    {
                        ;
                    }
                }
                else
                {
                    ;
                }
            }
示例#4
0
        public bool SetPassword(string password, uint idExtPass, uint idRolePass)
        {
            int err = -1;

            passResult = Errors.NoError;

            m_idExtPass  = idExtPass;
            m_idRolePass = idRolePass;

            byte[] hash = md5.ComputeHash(Encoding.ASCII.GetBytes(password));

            StringBuilder hashedString = new StringBuilder();

            for (int i = 0; i < hash.Length; i++)
            {
                hashedString.Append(hash[i].ToString("x2"));
            }

            GetPassword(out err);

            if (!(passResult == Errors.NoError))
            {
                //MessageBox.Show(this, "ќшибка получени¤ парол¤ " + getOwnerPass () + ". ѕароль не сохранЄн.", "ќшибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MessageBox("ќшибка получени¤ парол¤ " + getOwnerPass((int)m_idRolePass) + ". ѕароль не сохранЄн.");

                return(false);
            }
            else
            {
                ;
            }

            DbConnection conn = DbSources.Sources().GetConnection(m_idListener, out err);

            if (passReceive == null)
            {
                DbTSQLInterface.ExecNonQuery(ref conn, SetPassRequest(hashedString.ToString(), true), null, null, out err);
            }
            else
            {
                DbTSQLInterface.ExecNonQuery(ref conn, SetPassRequest(hashedString.ToString(), false), null, null, out err);
            }

            if (passResult != Errors.NoError)
            {
                //MessageBox.Show(this, "ќшибка сохранени¤ парол¤ " + getOwnerPass () + ". ѕароль не сохранЄн.", "ќшибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MessageBox("ќшибка сохранени¤ парол¤ " + getOwnerPass((int)m_idRolePass) + ". ѕароль не сохранЄн.");
                return(false);
            }

            return(true);
        }
示例#5
0
        private void threadPost(object par)
        {
            while (true)
            {
                INDEX_SEMATHREAD indx_semathread = (INDEX_SEMATHREAD)WaitHandle.WaitAny(m_arEvtThread);

                //Отправление сообщений...
                int    err    = -1;
                string toPost = string.Empty;

                if (m_listQueueMessage.Count > 0)
                {
                    switch (s_mode)
                    {
                    case LOG_MODE.DB:
                        if (m_evtConnSett.WaitOne(0, true) == true)
                        {
                            lock (m_objQueueMessage)
                            {
                                ////Отладка!!!
                                //Console.WriteLine(@"Логгирование: сообщений на вХоде=" + m_listQueueMessage.Count);

                                int indx_queue = 0
                                , cnt_running  = 0;
                                while ((indx_queue < m_listQueueMessage.Count) && (cnt_running < MAX_COUNT_MESSAGE_ONETIME))
                                {
                                    if (m_listQueueMessage[indx_queue].m_state == STATE_MESSAGE.QUEUE)
                                    {
                                        toPost += getInsertQuery(m_listQueueMessage[indx_queue]) + @";";
                                        m_listQueueMessage[indx_queue].m_state = STATE_MESSAGE.RUNNING;

                                        cnt_running++;
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    indx_queue++;
                                }
                            }

                            DbTSQLInterface.ExecNonQuery(ref s_dbConn, toPost, null, null, out err);

                            if (!(err == 0))
                            {     //Ошибка при записи сообщений...
                                retryQueueMessage();

                                disconnect();
                                m_evtConnSett.Reset();
                            }
                            else
                            {     //Успех при записи сообщений...
                                clearQueueMessage();
                            }

                            ////Отладка!!!
                            //lock (m_objQueueMessage)
                            //{
                            //    Console.WriteLine(@"Логгирование: сообщений на вЫходе=" + m_listQueueMessage.Count);
                            //    foreach (MESSAGE msg in m_listQueueMessage)
                            //        Console.WriteLine(@"Тип сообщения=" + msg.m_state.ToString ());
                            //}
                        }
                        else
                        {
                            ;     //Нет соединения с БД
                        }
                        break;

                    case LOG_MODE.FILE_EXE:
                    case LOG_MODE.FILE_DESKTOP:
                    case LOG_MODE.FILE_LOCALDEV:
                    case LOG_MODE.FILE_NETDEV:
                        bool locking = false;
                        if ((!(m_listQueueMessage == null)) && (m_listQueueMessage.Count > 0))
                        {
                            lock (m_objQueueMessage)
                            {
                                int indx_queue = 0;
                                while (indx_queue < m_listQueueMessage.Count)
                                {
                                    if (m_listQueueMessage[indx_queue].m_bSeparator == true)
                                    {
                                        toPost += MessageSeparator + Environment.NewLine;
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    if (m_listQueueMessage[indx_queue].m_bDatetimeStamp == true)
                                    {
                                        toPost += m_listQueueMessage[indx_queue].m_strDatetimeReg + Environment.NewLine;
                                        toPost += DatetimeStampSeparator + Environment.NewLine;
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    toPost += m_listQueueMessage[indx_queue].m_text + Environment.NewLine;

                                    if (m_listQueueMessage.Count == 1)
                                    {
                                        locking = m_listQueueMessage[indx_queue].m_bLockFile;
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    if (locking == false)
                                    {
                                        if ((DateTime.Now - logRotateCheckLast).TotalSeconds > logRotateChekMaxSeconds)
                                        {
                                            //Принудить к проверке размера файла
                                            locking = true;
                                        }
                                        else
                                        {
                                            ;
                                        }
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    m_listQueueMessage[indx_queue].m_state = STATE_MESSAGE.RUNNING;

                                    indx_queue++;
                                }
                            }

                            if (locking == true)
                            {
                                LogLock();
                                LogCheckRotate();
                            }
                            else
                            {
                                ;
                            }

                            if (File.Exists(m_fileName) == true)
                            {
                                try
                                {
                                    if ((m_sw == null) || (m_fi == null))
                                    {
                                        //Вариант №1
                                        //FileInfo f = new FileInfo(m_fileName);
                                        //FileStream fs = f.Open(FileMode.Append, FileAccess.Write, FileShare.Write);
                                        //m_sw = new LogStreamWriter(fs, Encoding.GetEncoding("windows-1251"));
                                        //Вариант №2
                                        m_sw = new LogStreamWriter(m_fileName, true, Encoding.GetEncoding("windows-1251"));

                                        m_fi = new FileInfo(m_fileName);
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    m_sw.Write(toPost);
                                    m_sw.Flush();
                                }
                                catch (Exception e)
                                {
                                    retryQueueMessage();

                                    /*m_sw.Close ();*/
                                    m_sw = null;
                                    m_fi = null;
                                }
                            }
                            else
                            {
                                retryQueueMessage();
                            }

                            //if (externalLog == true)
                            //{
                            //    if (timeStamp == true)
                            //        delegateUpdateLogText(DateTime.Now.ToString() + ": " + message + Environment.NewLine);
                            //    else
                            //        delegateUpdateLogText(message + Environment.NewLine);
                            //}
                            //else
                            //    ;

                            clearQueueMessage();

                            if (locking == true)
                            {
                                LogUnlock();
                            }
                            else
                            {
                                ;
                            }
                        }
                        else
                        {
                        }
                        break;

                    case LOG_MODE.UNKNOWN:
                    default:
                        break;
                    }
                }
                else
                {
                    ;
                }

                if (indx_semathread == INDEX_SEMATHREAD.STOP)
                {
                    break;
                }
                else
                {
                    m_arEvtThread[(int)INDEX_SEMATHREAD.MSG].Reset();
                }
            }
        }
        //Изменение (вставка) в оригинальную таблицу записей измененных (добавленных) в измененную таблицу (обязательно наличие поля: ID)
        public static void RecUpdateInsert(ref DbConnection conn, string nameTable, DataTable origin, DataTable data, out int err)
        {
            err = 0;

            int  j = -1, k = -1;
            bool bUpdate = false;

            DataRow[] dataRows;
            string[]  strQuery        = new string[(int)DbTSQLInterface.QUERY_TYPE.COUNT_QUERY_TYPE];
            string    valuesForInsert = string.Empty;

            for (j = 0; j < data.Rows.Count; j++)
            {
                dataRows = origin.Select("ID=" + data.Rows[j]["ID"]);
                if (dataRows.Length == 0)
                {
                    //INSERT
                    strQuery[(int)DbTSQLInterface.QUERY_TYPE.INSERT] = string.Empty;
                    valuesForInsert = string.Empty;
                    strQuery[(int)DbTSQLInterface.QUERY_TYPE.INSERT] = "INSERT INTO " + nameTable + " (";
                    for (k = 0; k < data.Columns.Count; k++)
                    {
                        strQuery[(int)DbTSQLInterface.QUERY_TYPE.INSERT] += data.Columns[k].ColumnName + ",";
                        valuesForInsert += DbTSQLInterface.valueForQuery(data, j, k) + ",";
                    }
                    strQuery[(int)DbTSQLInterface.QUERY_TYPE.INSERT] = strQuery[(int)DbTSQLInterface.QUERY_TYPE.INSERT].Substring(0, strQuery[(int)DbTSQLInterface.QUERY_TYPE.INSERT].Length - 1);
                    valuesForInsert = valuesForInsert.Substring(0, valuesForInsert.Length - 1);
                    strQuery[(int)DbTSQLInterface.QUERY_TYPE.INSERT] += ") VALUES (";
                    strQuery[(int)DbTSQLInterface.QUERY_TYPE.INSERT] += valuesForInsert + ")";
                    DbTSQLInterface.ExecNonQuery(ref conn, strQuery[(int)DbTSQLInterface.QUERY_TYPE.INSERT], null, null, out err);
                }
                else
                {
                    if (dataRows.Length == 1)
                    {//UPDATE
                        bUpdate = false;
                        strQuery[(int)DbTSQLInterface.QUERY_TYPE.UPDATE] = string.Empty;
                        for (k = 0; k < data.Columns.Count; k++)
                        {
                            if (!(data.Rows[j][k].Equals(origin.Rows[j][k]) == true))
                            {
                                if (bUpdate == false)
                                {
                                    bUpdate = true;
                                }
                                else
                                {
                                    ;
                                }
                            }
                            else
                            {
                                ;
                            }

                            strQuery[(int)DbTSQLInterface.QUERY_TYPE.UPDATE] += data.Columns[k].ColumnName + "="; // + data.Rows[j][k] + ",";

                            strQuery[(int)DbTSQLInterface.QUERY_TYPE.UPDATE] += DbTSQLInterface.valueForQuery(data, j, k) + ",";
                        }

                        if (bUpdate == true)
                        {//UPDATE
                            strQuery[(int)DbTSQLInterface.QUERY_TYPE.UPDATE] = strQuery[(int)DbTSQLInterface.QUERY_TYPE.UPDATE].Substring(0, strQuery[(int)DbTSQLInterface.QUERY_TYPE.UPDATE].Length - 1);
                            strQuery[(int)DbTSQLInterface.QUERY_TYPE.UPDATE] = "UPDATE " + nameTable + " SET " + strQuery[(int)DbTSQLInterface.QUERY_TYPE.UPDATE] + " WHERE ID=" + data.Rows[j]["ID"];

                            DbTSQLInterface.ExecNonQuery(ref conn, strQuery[(int)DbTSQLInterface.QUERY_TYPE.UPDATE], null, null, out err);
                        }
                        else
                        {
                            ;
                        }
                    }
                    else
                    {
                        throw new Exception("Невозможно определить тип изменения таблицы " + nameTable);
                    }
                }
            }
        }
示例#7
0
        private void threadPost(object par)
        {
            while (true)
            {
                INDEX_SEMATHREAD indx_semathread = (INDEX_SEMATHREAD)WaitHandle.WaitAny(m_arEvtThread);

                //Отправление сообщений...
                int    err    = -1;
                string toPost = string.Empty;

                if (m_listQueueMessage.Count > 0)
                {
                    switch (s_mode)
                    {
                    case LOG_MODE.DB:
                        if (m_evtConnSett.WaitOne(0) == true)
                        {
                            lock (m_objQueueMessage)
                            {
                                ////Отладка!!!
                                //Console.WriteLine(@"Логгирование: сообщений на вХоде=" + m_listQueueMessage.Count);

                                int indx_queue = 0
                                , cnt_running  = 0;
                                while ((indx_queue < m_listQueueMessage.Count) && (cnt_running < MAX_COUNT_MESSAGE_ONETIME))
                                {
                                    if (m_listQueueMessage[indx_queue].m_state == STATE_MESSAGE.QUEUE)
                                    {
                                        toPost += getInsertQuery(m_listQueueMessage[indx_queue]) + @";";
                                        m_listQueueMessage[indx_queue].m_state = STATE_MESSAGE.RUNNING;

                                        cnt_running++;
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    indx_queue++;
                                }
                            }

                            DbTSQLInterface.ExecNonQuery(ref s_dbConn, toPost, null, null, out err);

                            if (!(err == 0))
                            {     //Ошибка при записи сообщений...
                                lock (m_objQueueMessage)
                                {
                                    //Постановка ПОВТОРно сообщений в очередь
                                    foreach (MESSAGE msg in m_listQueueMessage)
                                    {
                                        if (msg.m_state == STATE_MESSAGE.RUNNING)
                                        {
                                            msg.m_state = STATE_MESSAGE.QUEUE;
                                        }
                                        else
                                        {
                                            ;
                                        }
                                    }
                                }

                                disconnect();
                                m_evtConnSett.Reset();
                            }
                            else
                            {     //Успех при записи сообщений...
                                lock (m_objQueueMessage)
                                {
                                    //Найти обработанные сообщения
                                    List <int> listIndxMsgRunning = new List <int>();
                                    foreach (MESSAGE msg in m_listQueueMessage)
                                    {
                                        if (msg.m_state == STATE_MESSAGE.RUNNING)
                                        {
                                            listIndxMsgRunning.Add(m_listQueueMessage.IndexOf(msg));
                                        }
                                        else
                                        {
                                            ;
                                        }
                                    }

                                    //Сортировать список индексов в ОБРАТном порядке
                                    // для удаления сообщений из списка по ИНДЕКСу
                                    listIndxMsgRunning.Sort(delegate(int i1, int i2) { return(i1 > i2 ? -1 : 1); });

                                    //Удалить обработанные сообщения
                                    foreach (int indx in listIndxMsgRunning)
                                    {
                                        m_listQueueMessage.RemoveAt(indx);
                                    }
                                }
                            }

                            ////Отладка!!!
                            //lock (m_objQueueMessage)
                            //{
                            //    Console.WriteLine(@"Логгирование: сообщений на вЫходе=" + m_listQueueMessage.Count);
                            //    foreach (MESSAGE msg in m_listQueueMessage)
                            //        Console.WriteLine(@"Тип сообщения=" + msg.m_state.ToString ());
                            //}
                        }
                        else
                        {
                            ;     //Нет соединения с БД
                        }
                        break;

                    case LOG_MODE.FILE:
                        bool locking = false;
                        if ((!(m_listQueueMessage == null)) && (m_listQueueMessage.Count > 0))
                        {
                            lock (m_objQueueMessage)
                            {
                                while (m_listQueueMessage.Count > 0)
                                {
                                    if (m_listQueueMessage[0].m_bSeparator == true)
                                    {
                                        toPost += MessageSeparator + Environment.NewLine;
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    if (m_listQueueMessage[0].m_bDatetimeStamp == true)
                                    {
                                        toPost += m_listQueueMessage[0].m_strDatetimeReg + Environment.NewLine;
                                        toPost += DatetimeStampSeparator + Environment.NewLine;
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    toPost += m_listQueueMessage[0].m_text + Environment.NewLine;

                                    if (m_listQueueMessage.Count == 1)
                                    {
                                        locking = m_listQueueMessage[0].m_bLockFile;
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    m_listQueueMessage[0].m_state = STATE_MESSAGE.RUNNING;
                                }
                            }

                            if (locking == true)
                            {
                                LogLock();
                                LogCheckRotate();
                            }
                            else
                            {
                                ;
                            }

                            if (File.Exists(m_fileName) == true)
                            {
                                try
                                {
                                    if ((m_sw == null) || (m_fi == null))
                                    {
                                        //Вариант №1
                                        //FileInfo f = new FileInfo(m_fileName);
                                        //FileStream fs = f.Open(FileMode.Append, FileAccess.Write, FileShare.Write);
                                        //m_sw = new LogStreamWriter(fs, Encoding.GetEncoding("windows-1251"));
                                        //Вариант №2
                                        m_sw = new LogStreamWriter(m_fileName, true, Encoding.GetEncoding("windows-1251"));

                                        m_fi = new FileInfo(m_fileName);
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    m_sw.Write(toPost);
                                    m_sw.Flush();
                                }
                                catch (Exception e)
                                {
                                    /*m_sw.Close ();*/
                                    m_sw = null;
                                    m_fi = null;
                                }
                            }
                            else
                            {
                                ;
                            }

                            //if (externalLog == true)
                            //{
                            //    if (timeStamp == true)
                            //        delegateUpdateLogText(DateTime.Now.ToString() + ": " + message + Environment.NewLine);
                            //    else
                            //        delegateUpdateLogText(message + Environment.NewLine);
                            //}
                            //else
                            //    ;

                            lock (m_objQueueMessage) {
                                m_listQueueMessage.RemoveAt(0);
                            }

                            if (locking == true)
                            {
                                LogUnlock();
                            }
                            else
                            {
                                ;
                            }
                        }
                        else
                        {
                        }
                        break;

                    case LOG_MODE.UNKNOWN:
                    default:
                        break;
                    }
                }
                else
                {
                    ;
                }

                if (indx_semathread == INDEX_SEMATHREAD.STOP)
                {
                    break;
                }
                else
                {
                    m_arEvtThread[(int)INDEX_SEMATHREAD.MSG].Reset();
                }
            }
        }
        public void Save(int idListener, List <ConnectionSettings> listConnSett, out int err)
        {
            err = 1;
            int    i = -1, c = -1;
            string strQuery, psw
            , hash;

            //char []hash;
            //StringBuilder sb;

            strQuery = psw = string.Empty;

            DbConnection conn = DbSources.Sources().GetConnection(idListener, out err);

            //DbConnection conn = DbTSQLInterface.GetConnection (m_ConnectionSettings, out err);

            if (err == 0)
            {
                DataTable tableSource = null,
                          tablePsw    = null;

                if (err == 0)
                {
                    for (i = 0; i < listConnSett.Count; i++)
                    {
                        tableSource = DbTSQLInterface.Select(ref conn, ConnectionSettingsRequest(listConnSett[i].id), null, null, out err);
                        //TYPE_DATABASE_CFG.CFG_200 = ???
                        tablePsw = DbTSQLInterface.Select(ref conn, PasswordRequest(TYPE_DATABASE_CFG.CFG_200, listConnSett[i].id, 501), null, null, out err);

                        if (tableSource.Rows.Count == 0)
                        {//INSERT
                        }
                        else
                        if (tableSource.Rows.Count == 1)
                        {    //UPDATE
                            if ((listConnSett[i].server.Equals(tableSource.Rows [0]["IP"].ToString()) == false) ||
                                (listConnSett[i].dbName.Equals(tableSource.Rows[0]["DB_NAME"].ToString()) == false) ||
                                (listConnSett[i].userName.Equals(tableSource.Rows[0]["UID"].ToString()) == false))
                            {
                                strQuery += "UPDATE SOURCE SET ";

                                strQuery += "IP='" + listConnSett[i].server + "',";
                                strQuery += "DB_NAME='" + listConnSett[i].dbName + "',";
                                strQuery += "UID='" + listConnSett[i].userName + "'";

                                strQuery += " WHERE ID=" + listConnSett[i].id + ";";
                            }
                            else
                            {
                                ;     //Ничего не изменилось
                            }
                            if (listConnSett[i].password.Length > 0)
                            {
                                //sb = new StringBuilder(listConnSett[i].password);
                                //hash = Crypt.Crypting().to(sb, out err);
                                hash = Crypt.Crypting().Encrypt(listConnSett[i].password, Crypt.KEY);

                                //if (err > 0)
                                if (hash.Length > 0)
                                {
                                    if (tablePsw.Rows.Count == 0)
                                    {    //INSERT
                                        strQuery += "INSERT INTO passwords (ID_EXT, ID_ROLE, HASH) VALUES (";

                                        strQuery += listConnSett[i].id + ", ";
                                        strQuery += 501 + ", ";
                                        strQuery += "'" + hash + "'";

                                        strQuery += ");";
                                    }
                                    else
                                    if (tablePsw.Rows.Count == 1)
                                    {        //UPDATE
                                        strQuery += "UPDATE passwords SET ";

                                        strQuery += "HASH='" + hash + "'";

                                        strQuery += " WHERE ID_EXT=" + listConnSett[i].id;
                                        strQuery += " AND ";
                                        strQuery += "ID_ROLE=" + 501 + ";";
                                    }
                                    else
                                    {
                                        ;
                                    }
                                }
                                else
                                {
                                    ;     //Ошибка шифрования пароля ИЛИ нет пароля
                                }
                            }
                            else
                            {
                                ;     //Нет пароля
                            }
                        }
                        else
                        {
                            ;
                        }
                    }

                    DbTSQLInterface.ExecNonQuery(ref conn, strQuery, null, null, out err);
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }

            //DbTSQLInterface.CloseConnection (conn, out err);
        }