示例#1
0
        private static void Test_Isolation()
        {
            try
            {
                CUBRIDConnection     conn  = new CUBRIDConnection();
                CUBRIDIsolationLevel level = conn.IsolationLevel;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                Debug.Assert(e.Message == "The connection is not open!");
            }

            try
            {
                CUBRIDConnection conn = new CUBRIDConnection();
                conn.ConnectionString = connString;
                conn.Open();
                CUBRIDIsolationLevel level = conn.IsolationLevel;
                conn.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
示例#2
0
    /// <summary>
    ///   Initializes a new instance of the <see cref="CUBRIDTransaction" /> class.
    /// </summary>
    /// <param name="conn"> The connection. </param>
    /// <param name="isolationLevel"> The isolation level. </param>
    public CUBRIDTransaction(CUBRIDConnection conn, CUBRIDIsolationLevel isolationLevel)
    {
      if (isolationLevel == CUBRIDIsolationLevel.TRAN_UNKNOWN_ISOLATION)
        throw new ArgumentException(Utils.GetStr(MsgId.UnknownIsolationLevelNotSupported));

      this.conn = conn;
      conn.IsolationLevel = isolationLevel;
      conn.SetIsolationLevel(isolationLevel);
      open = true;
    }
示例#3
0
        /// <summary>
        ///   Initializes a new instance of the <see cref="CUBRIDTransaction" /> class.
        /// </summary>
        /// <param name="conn"> The connection. </param>
        /// <param name="isolationLevel"> The isolation level. </param>
        public CUBRIDTransaction(CUBRIDConnection conn, CUBRIDIsolationLevel isolationLevel)
        {
            if (isolationLevel == CUBRIDIsolationLevel.TRAN_UNKNOWN_ISOLATION)
            {
                throw new ArgumentException(Utils.GetStr(MsgId.UnknownIsolationLevelNotSupported));
            }

            this.conn           = conn;
            conn.IsolationLevel = isolationLevel;
            conn.SetIsolationLevel(isolationLevel);
            open = true;
        }
示例#4
0
    /// <summary>
    ///   Gets the isolation level.
    /// </summary>
    /// <returns> </returns>
    public CUBRIDIsolationLevel GetIsolationLevel()
    {
        T_CCI_ERROR err = new T_CCI_ERROR();
        int level = 0;

        if (connState != ConnectionState.Open)
            throw new InvalidOperationException(Utils.GetStr(MsgId.TheConnectionIsNotOpen));

        int ret = CciInterface.cci_get_db_parameter(con_id, T_CCI_DB_PARAM.CCI_PARAM_ISOLATION_LEVEL, ref level, ref err);
        if (ret < 0)
        {
            throw new CUBRIDException(err.err_code, err.err_msg);
        }
        isolationLevel = (CUBRIDIsolationLevel)level;
        return isolationLevel;
    }
示例#5
0
    /// <summary>
    ///   Begins the transaction.
    /// </summary>
    /// <param name="iso"> The isolation level. </param>
    /// <returns> </returns>
    public CUBRIDTransaction BeginTransaction(CUBRIDIsolationLevel iso)
    {
        if (State == ConnectionState.Closed)
        {
            throw new CUBRIDException(Utils.GetStr(MsgId.TheConnectionIsNotOpen));
        }

        SetAutoCommit(false);
        CUBRIDTransaction t = new CUBRIDTransaction(this, iso);

        return t;
    }