Я пытаюсь использовать API Oracle C# (OracleDependency), чтобы мое приложение получало уведомление от Oracle при добавлении, изменении или удалении строки. Для этого я сначала регистрирую таблицы, по которым хочу получать уведомления. Все работает нормально, пока я использую то же соединение Oracle. Однако я хотел бы, чтобы мое приложение прослушивало несколько баз данных Oracle. Независимо от того, использую ли я одну OracleDependency для всех или одну для каждого соединения, я получаю одну и ту же ошибку: «эта операция требует, чтобы объекты использовали одно и то же соединение.
Эта ошибка появляется в строке «cmd.ExecuteNonQuery();< /p>
Спасибо
private void registerDependency(string tableName, OracleConnection cnx)
{
string query = "SELECT * FROM " + tableName;
OracleCommand cmd = new OracleCommand(query, cnx);
Console.WriteLine($"Creating command for {tableName}, cmd instance: {cmd.GetHashCode()}");
try
{
var reader = cmd.ExecuteReader();
reader.Read();
reader.Close();
}
catch (Exception )
{
return;
}
var dep = createOracleDependency();
dep.AddCommandDependency(cmd);
cmd.AddRowid = true;
cmd.Notification.IsNotifiedOnce = false;
try
{
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
Console.WriteLine($"Erreur : {e.Message}");
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... connection