コード例 #1
0
ファイル: SqlObj.cs プロジェクト: NickHola/Backupper
        internal static bool FiltraEccezioniQuery(Exception ex)
        {
            string mess, tipo; bool esito;

            mess  = ex.Message;
            tipo  = ex.GetType().ToString();
            esito = false;

            if (esito == false && mess.Contains("timeout") && mess.Contains("query"))
            {
                esito = true;
            }
            if (esito == false && mess.Contains(".net") && mess.Contains("framework") && mess.Contains("data") && mess.Contains("provider"))
            {
                esito = true;                                                                                                                              //Sub:ThreadStart_Context->thrCicloSincronizzaOraConServer->ExecQuery |  - Query:<SELECT excOra FROM excDispositivi WHERE idRnd='OV359'  --***Sub: thrCicloSincronizzaOraConServer>, ErrDescr:<Errore .Net Framework Data Provider 30 interno.> , ErrNum:<5>
            }
            if (esito == false && mess.Contains("provider") && mess.Contains("tcp"))
            {
                esito = true;
            }
            if (esito == false && mess.Contains("Errore") && mess.Contains("collegamento") && mess.Contains("durante") && mess.Contains("comunicazione"))
            {
                esito = true;                                                                                                                                           //Sub:ThreadStart_Context->thrCicloExchangeComandeEliminaTavoliChiusi->ExecQuery |  - Query:<SELECT idRiga FROM excComande  --***Sub: thrCicloExchangeComandeEliminaTavoliChiusi>, ErrDescr:<Errore di collegamento durante la comunicazione. Provider TCP: Il nome di rete specificato non è più disponibile.> , ErrNum:<5>
            }
            if (esito == false && mess.Contains("communication") && mess.Contains("link") && mess.Contains("failure"))
            {
                esito = true;
            }
            if (esito == false && mess.Contains("Impossibile creare una nuova connessione perché è attivata la modalità di transazione manuale o distribuita"))
            {
                esito = true;                                                                                                                                                 //<SELECT * FROM ExcCtrl WHERE nome='EventoInCorso'><Impossibile creare una nuova connessione perché è attivata la modalità di transazione manuale o distribuita.> lo ha generato poichè durante il runtime mi sono collegato ad un'altra rete
            }
            if (esito == false && mess.Contains("Riferimento a un oggetto non impostato su un'istanza di oggetto"))
            {
                esito = true;                                                                                                     //ErrDescr:<Riferimento a un oggetto non impostato su un'istanza di oggetto.> , ErrNum:<91>
            }
            if (esito == false && mess.Contains("Executereader richiede una oggetto connection aperto e disponibile. lo stato attuale della connessione è connessione in corso"))
            {
                esito = true;                                                                                                                                                                   //Sub:RunInternal->thrCicloSincronizzaOraConServer->ExecQuery |  - Query:<SELECT excOra FROM excDispositivi WHERE idRnd='6A>Õ0'  --***Sub: thrCicloSincronizzaOraConServer>, ErrDescr:<ExecuteReader richiede una oggetto Connection aperto e disponibile. Lo stato attuale della connessione è connessione in corso.> , ErrNum:<5>
            }
            if (esito == false && mess.Contains("Executereader richiede una oggetto connection aperto e disponibile. lo stato attuale della connessione è chiuso"))
            {
                esito = true;
            }
            if (esito == false && mess.Contains("La transazione non è associata alla connessione corrente oppure è stata completata"))
            {
                esito = true;                                                                                                                        //Sub:ThreadStart_Context->thrCicloExchangeComandeRicezione->ExecQuery |  - Query:<SELECT idRiga FROM excComande  --***Sub: thrCicloExchangeComandeRicezione>, ErrDescr:<La transazione non è associata alla connessione corrente oppure è stata completata.> , ErrNum:<5>
            }
            if (esito == false && Thr.FiltraEccezioniThreadNonCiclanti(ex) == true)
            {
                esito = true;
            }

            return(esito);
        }