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 :

Procédure stockée via ODBC


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut Procédure stockée via ODBC
    J'essaye de récupérer le résultat d'une procédure stockée lancée via ODBC mais j'obtient en retour une erreur du SGBD qui m'indique que le nombre de paramètres est incorrect au niveau du ExecuteReader()... pourtant ma procédure n'est censé recevoir qu'un seul paramètre et fonctionne parfaitement lorsque je la lance sur le serveur (call mytestproc('PAGE')).

    merci pour votre aide.

    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
     
    string strConnexion = "DSN=MicrosV4";
                string strProcedureStockee = "mytestproc";
                try
                {
                    OdbcConnection oConnection = new OdbcConnection(strConnexion);
                    OdbcCommand oCommand = new OdbcCommand(strProcedureStockee, oConnection);
                    oCommand.CommandType = CommandType.StoredProcedure;
                    OdbcParameter oParam = oCommand.Parameters.Add("@last_name", OdbcType.VarChar,32);
                    oParam.Value = "PAGE";
                    oConnection.ConnectionString = strConnexion;
                    oConnection.Open();
                    OdbcDataReader oReader = oCommand.ExecuteReader();
     
                    while (oReader.Read())
                    {
     
                    }
                    oReader.Close();
                    oConnection.Close();
     
                }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut
    Je n'ai pas encore testé mais je crois que j'ai trouvé ce qu'il me faut : http://support.microsoft.com/kb/310130

    il m'a fallu chercher plusieurs heures pour tomber la dessus... google est parfois très méchant avec moi

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut
    Au cas où certains tomberaient sur ce message voilà ce que ca donne une fois corrigé :

    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
     
    OdbcConnection cn;
                OdbcCommand cmd;
                OdbcParameter prm;
                OdbcDataReader dr;
     
                try
                {
                    //Change the connection string to use your SQL Server.
                    cn = new OdbcConnection("DSN=MicrosV4");
     
                    //Use ODBC call syntax.
                    cmd = new OdbcCommand("{call mytestproc (?)}", cn);
     
                    prm = cmd.Parameters.Add("@last_name", OdbcType.VarChar , 5);
                    prm.Value = "PAGE";
     
                    cn.Open();
     
                    dr = cmd.ExecuteReader();
     
                    //List each product.
                    while (dr.Read())
                        MessageBox.Show(dr.GetString(0));
     
                    //Clean up.
                    dr.Close();
                    cn.Close();
                }
                catch (OdbcException o)
                {
                    MessageBox.Show(o.Message.ToString());
                }

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/07/2014, 09h04
  2. Affichage resultat de procédure stockée via une Gateway
    Par abderahim82 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 16/06/2009, 09h32
  3. Réponses: 3
    Dernier message: 17/11/2008, 12h23
  4. Réponses: 9
    Dernier message: 18/07/2007, 11h34
  5. Réponses: 4
    Dernier message: 25/10/2005, 10h36

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