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()); } }
/// <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; }
/// <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; }
/// <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; }
/// <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; }