Ejemplo n.º 1
0
 public void ComenzarTransaccion()
 {
     if (_Transaccion == null)
     {
         _Transaccion = _Conexion.BeginTransaction();
     }
 }
Ejemplo n.º 2
0
        public static long GetSequenceTrans(iDB2Connection conn, string tableName)
        {
            //iDB2Transaction trans = conn.BeginTransaction(IsolationLevel.RepeatableRead);
            iDB2Transaction trans = conn.BeginTransaction();
            long            id    = 0;

            try {
                string          sql   = "SELECT VALUE FROM SEQ_TABLE WHERE KEY=@KEY";
                iDB2Parameter[] parms = new iDB2Parameter[] {
                    new iDB2Parameter("@KEY", "USER")
                };
                Object obj = ExecuteScalar(trans, CommandType.Text, sql, parms);
                if (obj != null)
                {
                    id = Convert.ToInt32(obj);
                    string          sqlUpdate   = "UPDATE SEQ_TABLE SET VALUE=@NEW_ID WHERE VALUE=@OLD_ID AND KEY=@KEY";
                    iDB2Parameter[] parmsUpdate = new iDB2Parameter[] {
                        new iDB2Parameter("@NEW_ID", id + 1),
                        new iDB2Parameter("@OLD_ID", id),
                        new iDB2Parameter("@KEY", tableName)
                    };
                    ExecuteNonQuery(trans, CommandType.Text, sqlUpdate, parmsUpdate);
                }
                else
                {
                    id = 1;
                    string          sqlInsert   = "INSERT INTO SEQ_TABLE(KEY,VALUE) VALUES(@KEY,@VALUE)";
                    iDB2Parameter[] parmsInsert = new iDB2Parameter[] {
                        new iDB2Parameter("@KEY", tableName),
                        new iDB2Parameter("@VALUE", id + 1)
                    };
                    ExecuteNonQuery(trans, CommandType.Text, sqlInsert, parmsInsert);
                }
                trans.Commit();
                return(id);
            }
            catch (Exception ex)
            {
                log.Error(ex.Message);
                log.Error(ex.StackTrace);
                trans.Rollback();
                return(0);
            }
        }
Ejemplo n.º 3
0
        public void StartTransaction()
        {
            // Apre una transazione su cui eseguire comandi
            // --------------------------------------------

            try
            {
                objConnection = new iDB2Connection(strConn);
                objConnection.Open();
                // Creiamo un timestamp da usare negli aggiornamenti
                // -------------------------------------------------
                CreateTimestamp();
                objTransaction            = objConnection.BeginTransaction();
                blnTrans                  = true;
                objCommand                = new iDB2Command();
                objCommand.CommandTimeout = 180;
                objCommand.Connection     = objConnection;
                objCommand.Transaction    = objTransaction;
            }
            catch (Exception ex)
            {
                objException = ex;
            }
        }