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

Accès aux données Discussion :

[C#/ORACLE 9i] Comment executer une procedure stockée ?


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet informatique AXA
    Inscrit en
    Avril 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet informatique AXA
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 40
    Points : 42
    Points
    42
    Par défaut [C#/ORACLE 9i] Comment executer une procedure stockée ?
    Bonjour

    Dans une Pacjkage oracle j'ai une procedure stockée : ps_getMesenrigistrement qui est une procédure stockée ayant 3 prametre in (en entrée ) et un moncursor de type cursor en out.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ps_getMesenrigistrement (MonParam1 in varchar
                                        MonParam1 in varchar
                                        MonParam1 in varchar
                                       Moncursor out Cursor)
     
    open mon cursor
    select ...
    from
    Where Truc = MonParam1 
     
    ...etc...
    Ca c'est OK

    Maintenant en C# je souhaite pour un programme client serveur lancer cette procedure stockée et mettre le résultat dans une collection metier (que je metrais ensuite dans un objet de type DataView).

    Ma question est comment executer cette procésure stockée et qu'elle me renvoie un DataSet ?
    Je travail en Dot.NET avec visual studio 2003 et C# avec Framework 1.1

    Disposez vous d'un exemple de code ou miuex un objet permetant d'attaquer oracle et retournant des DataSet.

    Merci.

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Je pense que le mieux est de télécharger les exemples d'Oracle

    http://www.oracle.com/technology/sam...db8/index.html

    Quant à un dataset, ça se construit. Rien ne t'empêche de créer une méthode de classe qui exécute ta procédure stockée et construit un dataset avec le retour de celle-ci.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Août 2006
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Re bonjour Etienne,

    N'ayant pas Oracle, je n'ai pas pu vous faire un bon exemple de récupération de données en utilisant une procédure stockées avec un curseur en paramètre.
    Je viens juste d'installer Oracle Express Edition alors j'en ai profité pour vous faire un exemple un peu plus concret.

    Côté Oracle :

    create or replace package PROCEDURES_PCK as
    type C_EMPLOYEES_TYPE is ref cursor return EMPLOYEES%rowtype;
    procedure P_GET_EMPLOYEE_BY_KIND(I_KIND in EMPLOYEES.JOB_ID%type,
    C_EMPLOYEES out C_EMPLOYEES_TYPE);

    end;
    /
    show error;
    create or replace package body PROCEDURES_PCK as
    procedure P_GET_EMPLOYEE_BY_KIND(I_KIND in EMPLOYEES.JOB_ID%type,
    C_EMPLOYEES out C_EMPLOYEES_TYPE)
    is
    begin
    open C_EMPLOYEES for select * from EMPLOYEES where JOB_ID = I_KIND;
    end P_GET_EMPLOYEE_BY_KIND;
    end;
    /
    show error;
    Et Maintenant côté VS :

    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
     
            Dim MaChaineDeConnection As String = "Data Source=XE;" + _
                "User ID=HR;Password=test;"
            Dim MaConnexion As New OracleConnection(MaChaineDeConnection)
            Dim MaRequete As String = _
    "PROCEDURES_PCK.P_GET_EMPLOYEE_BY_KIND"
            Dim MaCommande As New OracleCommand(MaRequete, _
    MaConnexion)
            MaCommande.CommandType = CommandType.StoredProcedure
            Dim MonParametre As OracleParameter
            MonParametre = MaCommande.Parameters.Add("I_KIND", _
    OracleType.VarChar, 10)
            MonParametre.Value = "IT_PROG"
            MonParametre = MaCommande.Parameters.Add("C_EMPLOYEES", _
    OracleType.Cursor)
            MonParametre.Direction = ParameterDirection.Output
     
            Dim MonDataAdapter As New OracleDataAdapter(MaCommande)
            Dim MonDataSet As New DataSet
            MonDataAdapter.Fill(MonDataSet, "Employes")
     
            Dim MaTable As DataTable = MonDataSet.Tables(0)
     
            For Each Ligne As System.Data.DataRow In MaTable.Rows
                ListBox1.Items.Add(Ligne("FIRST_NAME") + " " +_
     Ligne("LAST_NAME"))
            Next
    J'espère que cet exemple vous permettra de mieux appréhender ce type de récupération de données. Je vous laisse le soin de le retranscrire en C# ;-)

    Math

  4. #4
    Membre du Club
    Homme Profil pro
    Chef de projet informatique AXA
    Inscrit en
    Avril 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet informatique AXA
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 40
    Points : 42
    Points
    42
    Par défaut
    MERCI !

    Beau beaucoup


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR XI] Comment utiliser une procedure stockée oracle avec crystal report XI
    Par saidms dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 03/01/2011, 09h28
  2. executer une procedure stocké Oracle dans Perl
    Par makohsarah dans le forum SGBD
    Réponses: 2
    Dernier message: 29/04/2009, 18h15
  3. comment Executer une procedure stocké paramétré
    Par Khalid.bounouader dans le forum Accès aux données
    Réponses: 1
    Dernier message: 30/10/2006, 17h36
  4. Réponses: 3
    Dernier message: 26/01/2006, 10h55
  5. executer une procedure stockée d'une BD depuis une autre BD
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/08/2005, 16h02

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