Oracle
 sql >> база данни >  >> RDS >> Oracle

Изчакване на OracleCommand

Нямате множество команди, изпълнявани във връзката, имате две команди, изпълнявани последователно, една след друга. Когато първата команда изтече, няма друга чакаща команда във връзката. Вашият код не изпраща втората команда за изпълнение, докато първата команда или не е успешна, или е хвърлила изключение.

Последният параграф от цитираната от вас документация трябва да гласи:В ситуация, в която множество обекти на OracleCommand използват една и съща връзка едновременно , ...

static void Main(string[] args)
{
    using (var conn = new OracleConnection("Pooling=False;...")) // why?
    using (var cmd1 = conn.CreateCommand())
    using (var cmd2 = conn.CreateCommand())
    {
        cmd1.CommandText = "UPDATE employee SET empname = 'temp1' WHERE id = 1";
        cmd2.CommandText = "UPDATE employee SET empname = 'temp2' WHERE id = 2";
        cmd1.CommandTimeout = 30;
        cmd2.CommandTimeout = 30;

        conn.Open();

        // there are no commands on conn yet

        try { cmd1.ExecuteNonQuery(); } // cmd1 is the only command on conn
        catch (OracleException) { } // if timeout, no other command affected

        // cmd1 is no longer on conn

        try { cmd2.ExecuteNonQuery(); } // cmd2 is the only command on conn
        catch (OracleException) { } // if timeout, no other command affected

        // cmd2 is no longer on conn
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Попълване на стойността на показвания елемент при заявка във формуляри на Oracle

  2. Списък на таблица и колони в едно изявление

  3. ORACLE:Използване на CTE (общи таблични изрази) с PL/SQL

  4. Изявление за изтриване на Oracle:колко реда са били изтрити чрез каскадно изтриване

  5. Обикновено SELECT с променлива, но без INTO