Ändern Benachrichtigung mit Oracle-Abhängigkeit in C#

Ich versuche, oracle database change notification in c#. Ich fand
dieses tutorial über, wie man diese Benachrichtigungen. Hab ich auch erstellt einfache win form-Anwendung für den Fang von Benachrichtigungen

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        SetUpNotification();
    }

    private void SetUpNotification()
    {
        var login = "DATA SOURCE=XE;PERSIST SECURITY INFO=True;USER ID=USR;PASSWORD=PWD";

        OracleConnection conn = null;
        OracleDependency dep = null;

        try
        {
            conn = new OracleConnection(login);

            var cmd = new OracleCommand("select * from customer_details", conn);

            conn.Open();

            cmd.AddRowid = true;
            dep = new OracleDependency(cmd);
            cmd.Notification.IsNotifiedOnce = false;

            dep.OnChange += new OnChangeEventHandler(dep_OnChange);
        }
        catch(Exception e)
        {
            MessageBox.Show(e.Message, e.Source, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

    void dep_OnChange(object sender, OracleNotificationEventArgs eventArgs)
    {
        MessageBox.Show(eventArgs.Details.ToString(), "Database changed");
    }
}

Login-string und OracleCommand cmd sind 100% in Ordnung. Ich habe versucht auch das zu ändern-Datenbank programmgesteuert, es verändert Daten in der Datenbank, aber nicht gefeuert OnChange-Ereignis.

Ich ihm auch Benachrichtigungen tu USR user

grant change notification to USR

und job_queue_processes sind größer als null.

Kann ein problem in der Tatsache, dass ich mit Express edition der oracle-Datenbank?

InformationsquelleAutor LadislavM | 2012-06-07
Schreibe einen Kommentar