public void BatchExecute_Test() { using (CUBRIDConnection conn = new CUBRIDConnection()) { LogTestStep("Test BatchExecute with serveral non-query sql statements"); conn.ConnectionString = DBHelper.connString; conn.Open(); DBHelper.ExecuteSQL("drop table if exists t", conn); string[] sql_arr = new string[3]; sql_arr[0] = "create table t(id integer)"; sql_arr[1] = "insert into t values(11)"; sql_arr[2] = "insert into t values(22)"; CUBRIDBatchResult result = conn.BatchExecute(sql_arr); Log("Check the CUBRIDBatchResult returned by BatchExecute()"); int[] statementType = result.getStatementTypes(); int[] errorCodes = result.getErrorCodes(); string[] errorMessage = result.getErrorMessages(); int[] executeResults = result.getResults(); Assert.AreEqual(3, result.Count()); Assert.AreEqual(false, result.getErrorFlag()); Assert.AreEqual(4, statementType[0]); Assert.AreEqual(20, statementType[1]); Assert.AreEqual(20, statementType[2]); Assert.AreEqual(0, executeResults[0]); Assert.AreEqual(1, executeResults[1]); Assert.AreEqual(1, executeResults[2]); for (int i = 0; i < 3; i++) { Assert.AreEqual(0, errorCodes[i]); Assert.AreEqual(null, errorMessage[i]); } string sql = "select * from t"; using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn)) { using (DbDataReader reader = cmd.ExecuteReader()) { for (int i = 1; i < 3; i++) { reader.Read(); Assert.AreEqual(i * 11, reader.GetInt32(0)); } } } LogStepPass(); LogTestStep("Test BatchExecute with null"); result = conn.BatchExecute(null); Assert.AreEqual(null, result); LogStepPass(); //revert the test db DBHelper.ExecuteSQL("drop table t;", conn); LogTestResult(); } }
/// <summary> /// Test BatchExecute() /// </summary> private static void Test_BatchExecute() { using (CUBRIDConnection conn = new CUBRIDConnection()) { conn.ConnectionString = TestCases.connString; conn.Open(); string sql = "create table t(idx integer)"; using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn)) { cmd.ExecuteNonQuery(); } string[] sql_arr = new string[3]; sql_arr[0] = "insert into t values(1)"; sql_arr[1] = "insert into t values(2)"; sql_arr[2] = "insert into t values(3)"; conn.BatchExecute(sql_arr); sql = "select count(*) from t"; using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn)) { using (DbDataReader reader = cmd.ExecuteReader()) { reader.Read(); Debug.Assert(reader.GetInt32(0) == 3); } } sql = "drop table t;"; using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn)) { cmd.ExecuteNonQuery(); } } }