/// <summary> /// Test SEQUENCE operations /// </summary> private static void Test_SequenceOperations() { using (CUBRIDConnection conn = new CUBRIDConnection()) { conn.ConnectionString = TestCases.connString; conn.Open(); TestCases.ExecuteSQL("DROP TABLE IF EXISTS t", conn); //Create a new table with a sequence TestCases.ExecuteSQL("CREATE TABLE t(seq SEQUENCE(int))", conn); //Insert some data in the sequence column TestCases.ExecuteSQL("INSERT INTO t(seq) VALUES({0,1,2,3,4,5,6})", conn); CUBRIDOid oid = new CUBRIDOid("@0|0|0"); using (CUBRIDCommand cmd = new CUBRIDCommand("SELECT t FROM t", conn)) { using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { oid = (CUBRIDOid)reader[0]; } } } String attributeName = "seq"; int value = 7; int SeqSize = conn.GetCollectionSize(oid, attributeName); Debug.Assert(SeqSize == 7); conn.UpdateElementInSequence(oid, attributeName, 1, value); SeqSize = conn.GetCollectionSize(oid, attributeName); Debug.Assert(SeqSize == 7); using (CUBRIDCommand cmd = new CUBRIDCommand("SELECT * FROM t", conn)) { using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int[] expected = { 7, 1, 2, 3, 4, 5, 6 }; object[] o = (object[])reader[0]; for (int i = 0; i < SeqSize; i++) { Debug.Assert(Convert.ToInt32(o[i]) == expected[i]); } } } } conn.InsertElementInSequence(oid, attributeName, 5, value); SeqSize = conn.GetCollectionSize(oid, attributeName); Debug.Assert(SeqSize == 8); using (CUBRIDCommand cmd = new CUBRIDCommand("SELECT * FROM t", conn)) { using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int[] expected = { 7, 1, 2, 3, 7, 4, 5, 6 }; object[] o = (object[])reader[0]; for (int i = 0; i < SeqSize; i++) { Debug.Assert(Convert.ToInt32(o[i]) == expected[i]); } } } } conn.DropElementInSequence(oid, attributeName, 5); SeqSize = conn.GetCollectionSize(oid, attributeName); Debug.Assert(SeqSize == 7); using (CUBRIDCommand cmd = new CUBRIDCommand("SELECT * FROM t", conn)) { using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int[] expected = { 7, 1, 2, 3, 4, 5, 6 }; object[] o = (object[])reader[0]; for (int i = 0; i < SeqSize; i++) { Debug.Assert(Convert.ToInt32(o[i]) == expected[i]); } } } } TestCases.ExecuteSQL("DROP t", conn); } }
public void CollectionSequence_Test() { Log("Test GetCollectionSize, UpdateElementInSequence, InsertElementInSequence, DropElementInSequence"); using (CUBRIDConnection conn = new CUBRIDConnection()) { conn.ConnectionString = DBHelper.connString; conn.Open(); DBHelper.ExecuteSQL("DROP TABLE IF EXISTS t", conn); //Create a new table with a sequence DBHelper.ExecuteSQL("CREATE TABLE t(seq SEQUENCE(int))", conn); //Insert some data in the sequence column DBHelper.ExecuteSQL("INSERT INTO t(seq) VALUES({0,1,2,3,4,5,6})", conn); CUBRIDOid oid = new CUBRIDOid("@0|0|0"); LogTestStep("Test UpdateElementInSequence"); using (CUBRIDCommand cmd = new CUBRIDCommand("SELECT t FROM t", conn)) { using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { oid = (CUBRIDOid)reader[0]; } } } String attributeName = "seq"; int SeqSize = conn.GetCollectionSize(oid, attributeName); Assert.AreEqual(7, SeqSize); conn.UpdateElementInSequence(oid, attributeName, 1, 11); SeqSize = conn.GetCollectionSize(oid, attributeName); Assert.AreEqual(7, SeqSize); using (CUBRIDCommand cmd = new CUBRIDCommand("SELECT * FROM t", conn)) { using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int[] expected = { 11, 1, 2, 3, 4, 5, 6 }; object[] o = (object[])reader[0]; for (int i = 0; i < SeqSize; i++) { Assert.AreEqual(expected[i], Convert.ToInt32(o[i])); } } } } LogStepPass(); LogTestStep("Test InsertElementInSequence"); conn.InsertElementInSequence(oid, attributeName, 5, 12); SeqSize = conn.GetCollectionSize(oid, attributeName); Assert.AreEqual(8, SeqSize); using (CUBRIDCommand cmd = new CUBRIDCommand("SELECT * FROM t", conn)) { using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int[] expected = { 11, 1, 2, 3, 12, 4, 5, 6 }; object[] o = (object[])reader[0]; for (int i = 0; i < SeqSize; i++) { Assert.AreEqual(expected[i], Convert.ToInt32(o[i])); } } } } LogStepPass(); LogTestStep("Test DropElementInSequence"); conn.DropElementInSequence(oid, attributeName, 6); SeqSize = conn.GetCollectionSize(oid, attributeName); Assert.AreEqual(7, SeqSize); using (CUBRIDCommand cmd = new CUBRIDCommand("SELECT * FROM t", conn)) { using (DbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int[] expected = { 11, 1, 2, 3, 12, 5, 6 }; object[] o = (object[])reader[0]; for (int i = 0; i < SeqSize; i++) { Assert.AreEqual(expected[i], Convert.ToInt32(o[i])); } } } } LogStepPass(); //revert test db DBHelper.ExecuteSQL("drop table t", conn); LogTestResult(); } }