Пример #1
0
        /// <summary>
        /// Glavna metoda za INSERT, UPDATE, DELETE komande.
        /// </summary>
        /// <param name="upit"></param>
        /// <param name="parametri"></param>
        /// <returns></returns>
        public bool Izvrsi(string upit, Hashtable parametri)
        {
            bool          uTransakciji;
            FbTransaction tran;

            if (Transaction == null)    // ako nije u transakciji napravi novu transakciju
            {
                izuzeci.Clear();
                tran         = Connection.BeginTransaction();
                uTransakciji = false;
            }
            else
            {
                tran         = Transaction;
                uTransakciji = true;
            }
            try
            {
                using (FbCommand Command = new FbCommand(upit, Connection, tran))
                {
                    if (parametri != null)
                    {
                        NapuniParametre(Command, parametri);
                    }
                    Command.ExecuteNonQuery();
                }
                if (!uTransakciji)
                {
                    tran.Commit();
                    tran.Dispose();
                }
                return(true);
            }
            catch (Exception ex)
            {
                izuzeci.Add(ex);
                Korisno.LogujGresku("Nije izvršen upit:\n" + upit, ex);
                if (!uTransakciji)// ako je u lokalnoj transakciji pokusaj da rollbackujes iz 3 puta
                {
                    for (int pokusaj = 0; pokusaj < 3; pokusaj++)
                    {
                        try
                        {
                            tran.Rollback();
                            tran.Dispose();
                        }
                        catch (Exception ex2)
                        {
                            izuzeci.Add(ex2);
                            Korisno.LogujGresku("Nije uspeo rollback iz pokusaja " + (pokusaj + 1).ToString(), ex2);
                        }
                        System.Threading.Thread.Sleep(1000);    // cekaj jednu sekundu pa pokusaj ponovo
                    }
                }
                return(false);
            }
        }
Пример #2
0
 /// <summary>
 /// Dispose ce da zatvori konekciju.
 /// </summary>
 public void Dispose()
 {
     try
     {
         ((MySqlConnection)DbConnection).Close();
     }
     catch (Exception ex)
     {
         Korisno.LogError("Nisam uspeo da zatvorim konekciju.", ex);
     }
 }
Пример #3
0
 /// <summary>
 /// Dispose ce da zatvori konekciju.
 /// </summary>
 public void Dispose()
 {
     try
     {
         Connection.Close();
     }
     catch (Exception ex)
     {
         izuzeci.Add(ex);
         Korisno.LogujGresku("Nisam uspeo da zatvorim konekciju.", ex);
     }
 }
Пример #4
0
 public override bool BeginTran()
 {
     try
     {
         Transaction = ((MySqlConnection)DbConnection).BeginTransaction();
         return(true);
     }
     catch (Exception ex)
     {
         Korisno.LogError("Can't begin transaction.", ex);
         return(false);
     }
 }
Пример #5
0
 public override bool BeginTran()
 {
     try
     {
         Transaction = Connection.BeginTransaction(System.Threading.Thread.CurrentThread.Name);
         return(true);
     }
     catch (Exception ex)
     {
         Korisno.LogError("Can't begin transaction.", ex);
         return(false);
     }
 }
Пример #6
0
 public bool ZatvoriKonekciju()
 {
     try
     {
         Connection.Close();
         return(true);
     }
     catch (Exception ex)
     {
         izuzeci.Add(ex);
         Korisno.LogujGresku("Ne mogu da zatvorim konekciju.", ex);
         return(false);
     }
 }
Пример #7
0
 public override bool Execute(string query, Hashtable parameters)
 {
     try
     {
         MySqlCommand command = new MySqlCommand(query, (MySqlConnection)DbConnection, Transaction);
         FillParams(command, parameters);
         command.CommandType = System.Data.CommandType.Text;
         return(command.ExecuteNonQuery() > 0);
     }
     catch (Exception ex)
     {
         Korisno.LogError("Fail to execute SQL.", ex);
         //Common.EventLogger.WriteEventError("Fail to execute SQL.", ex); // Comment this after approving class.
         m_LastException = ex;
         return(false);
     }
 }
Пример #8
0
 override public bool Close()
 {
     if (DbConnection.State != ConnectionState.Closed)
     {
         try
         {
             DbConnection.Close();
             return(true);
         }
         catch (Exception ex)
         {
             Korisno.LogError("Can't close connection.", ex);
             return(false);
         }
     }
     else
     {
         return(true);
     }
 }
Пример #9
0
 /// <summary>
 /// Otvara konekciju ka Firebird bazi.
 /// </summary>
 /// <returns>Vraca true ako je otvaranje uspesno.</returns>
 override public bool Open()
 {
     if (DbConnection.State != ConnectionState.Open)
     {
         try
         {
             DbConnection.Open();
             return(true);
         }
         catch (Exception ex)
         {
             Korisno.LogError("Can't open connection.", ex);
             return(false);
         }
     }
     else
     {
         return(true);
     }
 }
Пример #10
0
 public void OtvoriPonovoKonekciju()
 {
     Transaction = null;
     try
     {
         Connection.Close();
     }
     catch (Exception ex)
     {
         Korisno.LogujGresku("Nisam uspeo da zatvorim konekciju.", ex);
     }
     try
     {
         Connection.Open();
     }
     catch (Exception ex)
     {
         Korisno.LogujGresku("Nisam uspeo da otvorim konekciju.", ex);
         Connection = new FbConnection(Properties.Settings.Default.PolovniAutomobiliConnectionString);
     }
 }
Пример #11
0
 public override bool CommitTran()
 {
     if (Transaction != null)
     {
         try
         {
             Transaction.Commit();
             Transaction.Dispose();
             Transaction = null;
             return(true);
         }
         catch (Exception ex)
         {
             Korisno.LogError("Can't commit transaction.", ex);
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
Пример #12
0
 override public bool RollbackTran()
 {
     try
     {
         if (Transaction != null)
         {
             Transaction.Rollback();
             Transaction.Dispose();
             Transaction = null;
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         Korisno.LogError("Nisam uspeo da rolbekujem transakciju.", ex);
         return(false);
     }
 }
Пример #13
0
 public bool BeginTran()
 {
     izuzeci.Clear();
     if (Transaction == null)
     {
         try
         {
             Transaction = Connection.BeginTransaction(System.Threading.Thread.CurrentThread.Name);
             return(true);
         }
         catch (Exception ex)
         {
             izuzeci.Add(ex);
             Korisno.LogujGresku("Nisam uspeo da otvorim transakciju.", ex);
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
Пример #14
0
 public bool RollbackTran()
 {
     try
     {
         if (Transaction != null)
         {
             Transaction.Rollback();
             Transaction.Dispose();
             Transaction = null;
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         izuzeci.Add(ex);
         Korisno.LogujGresku("Nisam uspeo da rolbekujem transakciju.", ex);
         return(false);
     }
 }