コード例 #1
0
        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();
            }
        }
コード例 #2
0
ファイル: TestVarious.cs プロジェクト: CUBRID/cubrid-adonet
    /// <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();
        }
      }
    }