/// <summary> /// Test CUBRID Isolation Levels /// </summary> private static void Test_IsolationLevel() { string sqlTablesCount = "select count(*) from db_class"; int tablesCount, newTableCount; using (CUBRIDConnection conn = new CUBRIDConnection()) { conn.ConnectionString = TestCases.connString; conn.Open(); TestCases.ExecuteSQL("drop table if exists isol", conn); conn.SetIsolationLevel(CUBRIDIsolationLevel.TRAN_REP_READ); Debug.Assert(conn.GetIsolationLevel() == CUBRIDIsolationLevel.TRAN_REP_READ); tablesCount = (int)TestCases.GetSingleValue(sqlTablesCount, conn); TestCases.ExecuteSQL("create table isol(id int)", conn); newTableCount = (int)TestCases.GetSingleValue(sqlTablesCount, conn); //Verify table was created Debug.Assert(newTableCount == tablesCount + 1); using (CUBRIDConnection connOut = new CUBRIDConnection()) { connOut.ConnectionString = TestCases.connString; connOut.Open(); newTableCount = (int)TestCases.GetSingleValue(sqlTablesCount, connOut); //CREATE TABLE is visible from another connection Debug.Assert(newTableCount == tablesCount + 1); } TestCases.ExecuteSQL("drop table if exists isol", conn); } using (CUBRIDConnection conn = new CUBRIDConnection()) { conn.ConnectionString = TestCases.connString; conn.Open(); conn.SetIsolationLevel(CUBRIDIsolationLevel.TRAN_REP_CLASS_COMMIT_INSTANCE); Debug.Assert(conn.GetIsolationLevel() == CUBRIDIsolationLevel.TRAN_REP_CLASS_COMMIT_INSTANCE); tablesCount = (int)TestCases.GetSingleValue(sqlTablesCount, conn); conn.BeginTransaction(); TestCases.ExecuteSQL("create table isol(id int)", conn); newTableCount = (int)TestCases.GetSingleValue(sqlTablesCount, conn); //Verify table was created Debug.Assert(newTableCount == tablesCount + 1); using (CUBRIDConnection connOut = new CUBRIDConnection()) { connOut.ConnectionString = TestCases.connString; connOut.Open(); newTableCount = (int)TestCases.GetSingleValue(sqlTablesCount, connOut); Debug.Assert(newTableCount == tablesCount + 1); } conn.Commit(); newTableCount = (int)TestCases.GetSingleValue(sqlTablesCount, conn); //Verify table was created Debug.Assert(newTableCount == tablesCount + 1); TestCases.ExecuteSQL("drop table if exists isol", conn); newTableCount = (int)TestCases.GetSingleValue(sqlTablesCount, conn); Debug.Assert(newTableCount == tablesCount); } }