IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

OracleDependency, l'événement ne marche jamais


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Par défaut OracleDependency, l'événement ne marche jamais
    Bonjour tout le monde !

    J'ai quelques problèmes pour utiliser OracleDependency.

    J'ai lu les docs sur MSDN et Oracle puis copier les codes pour les tester, mais ça ne marche pas.
    L'événement : "on_my_event" n'ai jamais appelé.

    Est-ce que vous savez pourquoi ? Ais-je fait une erreur ?

    Le User a les droits (Change Notification) et Oracle est en version 11.2.0.3.0.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Linq; 
    using System.Text; 
    using System.Windows.Forms; 
    using Oracle.DataAccess.Client; 
     
    namespace WindowsFormsApplication1 
    { 
    public partial class Form1 : Form 
    { 
        string connection_string = "Data Source=My_srv;User Id=My_usr;Password=My_pwd;"; 
        OracleConnection connection = null; 
        OracleDependency dependency = null; 
        OracleCommand my_select = null; 
        OracleCommand my_insert = null; 
     
        public Form1() 
        { 
            InitializeComponent(); 
        } 
     
        private void TB_insert_event(object sender, EventArgs e) 
        { 
            if (TB_insert.Text == "Name of your insert") 
                TB_insert.Clear(); 
        } 
     
        private void insert(object sender, EventArgs e) 
        { 
            connection = new OracleConnection(connection_string); 
            my_insert = connection.CreateCommand(); 
            my_insert.CommandText = "INSERT INTO USR_DEV_TRUNK.WPARAM (wpa_codeparam) VALUES ('" + TB_insert.Text + "')"; 
            connection.Open(); 
            my_insert.ExecuteNonQuery(); 
            connection.Close(); 
        } 
     
        private void Set_dep(object sender, EventArgs e) 
        { 
            OracleDependency.Port = 3048; 
            connection = new OracleConnection(connection_string); 
            connection.Open(); 
            my_select = connection.CreateCommand(); 
            my_select.CommandText = "SELECT wpa_codeparam FROM USR_DEV_TRUNK.WPARAM"; 
            dependency = new OracleDependency(); 
            dependency.AddCommandDependency(my_select); 
            my_select.Notification.IsNotifiedOnce = false; 
            my_select.ExecuteNonQuery(); 
            dependency.OnChange += new OnChangeEventHandler(on_my_event); 
            TB_dependency.Text = "The dependency is set, do your insert to see if it works"; 
            connection.Close(); 
        } 
     
        public void on_my_event(object obj, OracleNotificationEventArgs arg) 
        { 
            TB_dependency.Text = "Yay ! It worked !"; 
        } 
    }
    J'ai deux boutons :
    - Un pour set la dépendence (fonction : Set_dep)
    - Un pour faire l'Insert (fonction : insert)

    J'ai deux TextBlocks :
    - Un pour prendre le nom de l'insert (TB_insert)
    - Un pour montrer l'état de la dépendence (TB_dependency)

    PS : J'ai aussi essayé de le faire en Console mais ça ne marche toujours pas.
    Il est possible qu'il me manque quelque chose sur la DB, par exemple une Queue (comme sur SQL serveur) mais je n'ai vu ça dans aucun des forums/docs que j'ai visités.
    Si vous savez quelque chose, je suis preneur !

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    As tu essayé de debugger en pas à pas avec un breakpoint dans ta callback ? Est ce que tu y passes ?

    Pareil pour ta méthode Set_dep, es tu sur d'y rentrer ?
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Par défaut
    Bonjour,

    J'ai mis un BreakPoint dans a peu près toutes les fonctions à force de me casser la tête dessus ^^'

    Donc je ne passe jamais dans ma callback, et oui je vais dans Set_dep. (et l'affichage de TB_dependency marche).

    L'insert marche aussi.

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    Et tu passes bien dans Set_dep AVANT de passer dans l'insert ? Si c'est le cas je ne vois pas, désolé.
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Par défaut
    Oui en faite j'ai deux boutons.

    J'appuie sur Set_dep, avec les breakpoints je vois bien que la dependency est set.

    Ensuite j'appuie sur insert et je vérifies sur la base de données.

    Tout marche mais l'événement n'est pas appelé.

    La chose qui m'embète c'est que ça marche bien avec une base SQL (SQLDependency).

    J'ai du zappé une option de configuration sur la DB (oracle) mais aucune post n'en parle (msdn ou oracle ou autres tuto).

Discussions similaires

  1. Nom de domaine ne marche jamais sans host (sous domaine)
    Par Hepil dans le forum Administration
    Réponses: 2
    Dernier message: 07/07/2015, 19h06
  2. wchar_t != NULL ne marche jamais
    Par Acropole dans le forum C++
    Réponses: 4
    Dernier message: 28/01/2012, 01h11
  3. [SDL] Gestion des événements ne marche pas
    Par lucas-84 dans le forum SDL
    Réponses: 5
    Dernier message: 17/11/2010, 14h18
  4. [XL-2003] ComboBox Sans Doublon: ça ne marche jamais
    Par Otmanes dans le forum Excel
    Réponses: 2
    Dernier message: 14/07/2009, 11h53
  5. Réponses: 1
    Dernier message: 08/11/2006, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo