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 :

Dataset - oracle 7


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 208
    Par défaut Dataset - oracle 7
    Bonjour a tous,
    je rencontre un gros soucis avec la création d'un dataset pourtant basic !

    J'ai une base de donnée oracle 7 : j'ai donc créé ma chaine de connexion puis un tableadapter.

    pour commencer, j'ai mis un simple "select champ 1, champ 2 from maTable"

    Je compile, Tout est ok, j'ai mes données.

    Je rajoute donc un where: "select champ 1, champ 2 from maTable where champ1=':maVar'". Et la, rien ne fonctionne.

    1) La methode fill générée ne comprend aucun parametre.
    2) Si j'ajoute manuellement un paramètre via le panneau propriete dutableadapter, j'obtiens sois aucune ligne, soit une erreur : ora-1008 - not all variables bound


    Je suis réellement dans une impasse la... Si quelqu'un pouvait m'aider, je le remercierai éternellement. J'ai perdu une demi journée la dessus !!!

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il ne faut pas mettre d'apostrophes autour du paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select champ 1, champ 2 from maTable where champ1=:maVar"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 208
    Par défaut
    Merci pour la réponse. Mais ca ne marche qu'a moitié.

    Effectivement, en enlevant les apostrophes, le paramètre est généré. Mais lorsque je tente de faire un "preview data", j'ai toujours cette satanée erreur "ora-1008"

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par yozart Voir le message
    Mais lorsque je fais un preview data, j'ai toujours l'erreur "ora 1008"
    Tu renseignes une valeur pour le paramètre quand tu fais preview data ?

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Les drivers ODP.Net sont encore compatible avec cette version? Elle a quand même plus de 20ans! (même si ca reste du basique)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 208
    Par défaut
    Oui bien sur... ^^

    En haut a droite, j'entre une donnée, puiis je clique sur preview


    @Nathanael: je ne sais absolument pas. comment puis-je voir? que puis-je utiliser sinon? Tout ce que je sais c'est que Oracle client 7.3.4 est installé sur mon poste

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    J'avoue que j'ai lancé ca sans trop savoir. Je me suis toujours perdu dans les trucs Oracle.
    Entre les versions serveurs, clients, drivers, providers toussa toussa ca reste la jungle! Quel driver utilises-tu?
    Le driver Oracle Microsoft, Oracle ODBC, ODP.Net ? (Il faut que tu regardes quelles sont les librairies référencées et le nom du driver dans la chaine de connection)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 208
    Par défaut
    Merci de vous interesser a mon probleme. Alors j'utilise les drivers suivant:

    Principalement:
    Provider=MSDAORA
    providerName="System.Data.OleDb"

    J'ai aussi testé:
    providerName="System.Data.Odbc"


    sur cette page, y a des drivers mais pas pour la version 7.3. La plus ancienne est la v9 :s

    http://www.oracle.com/technetwork/de...ads/index.html

  9. #9
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par yozart Voir le message
    Merci de vous interesser a mon probleme. Alors j'utilise les drivers suivant:

    Principalement:
    Provider=MSDAORA
    providerName="System.Data.OleDb"

    J'ai aussi testé:
    providerName="System.Data.Odbc"


    sur cette page, y a des drivers mais pas pour la version 7.3. La plus ancienne est la v9 :s

    http://www.oracle.com/technetwork/de...ads/index.html
    Ben effectivement, une mise à jour ne serait pas du luxe! Le support étendu pour la 7 s'est arreté y'a un peu moins de dix ans
    Il n'empeche qu'on est pas toujours maitre de l'infra sur laquelle on travaille.
    Est ce que cette requête marche sans utiliser de TableAdapter (avec un DataReader basique, d'ailleurs y'a t il une utilité à un TableAdapter?)

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 208
    Par défaut
    Il n'empeche qu'on est pas toujours maitre de l'infra sur laquelle on travaille.
    oui :/ malheureusement

    Est ce que cette requête marche sans utiliser de TableAdapter?
    Bonne question, le truc c'est que je ne sais pas comment faire ! Mon but est d'utiliser ce dataset dans un Crystal report par après!


    EDIT: J'ai trouvé ceci:

    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
    string sql = "SELECT champ1, champ2 FROM maTable where champ1=:PARAM";
                    using (OdbcConnection myConnection = new OdbcConnection(ConnectionString))
                    {
                        using (OdbcCommand myCommand = new OdbcCommand(sql, myConnection))
                        {
                            OdbcParameter op = new OdbcParameter(":PARAM", OdbcType.VarChar, 15);
                            op.Value = "123";
                            myCommand.Parameters.Add(op);
                            myConnection.Open();
                            using (OdbcDataReader myReader = myCommand.ExecuteReader())
                            {
     
                                ds.ORDHEAD.Load(myReader);
                                myConnection.Close();
                            }
                        }
                    }
    une fois de plus ora-1008

  11. #11
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Alors plusieurs choses:
    Dans ton new OdbcParameter, ne mets pas les : dans le nom du parametre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new OdbcParameter("PARAM", OdbcType.VarChar, 15);
    Essaie de voir si rajouter ce code fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myCommand.BindByName = true;
    PS: C'est quand même un dangereux un produit qui n'est plus en support étendu depuis presque 10ans, je sais pas si tu peux remonter l'info mais si oui n'hésite pas!

  12. #12
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Bon, en fait, le BindByName n'existe pas! Et c'est bien la le problème je pense.
    En fait, par défaut dans les drivers, Oracle ne binde pas les paramètres nommées. Essaie ca:

    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
    string sql = "SELECT champ1, champ2 FROM maTable where champ1= ? ";
                    using (OdbcConnection myConnection = new OdbcConnection(ConnectionString))
                    {
                        using (OdbcCommand myCommand = new OdbcCommand(sql, myConnection))
                        {
                            OdbcParameter op = new OdbcParameter(String.Empty, OdbcType.VarChar, 15);
                            op.Value = "123";
                            myCommand.Parameters.Add(op);
                            myConnection.Open();
                            using (OdbcDataReader myReader = myCommand.ExecuteReader())
                            {
     
                                ds.ORDHEAD.Load(myReader);
                                myConnection.Close();
                            }
                        }
                    }

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 208
    Par défaut
    Génial...

    Ca marche effectivement... J'pouvais encore chercher longtemps.


    Merci beaucoup pour ton aide. Tu m'as sauvé.

  14. #14
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Avec plaisir

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

Discussions similaires

  1. [C#/Oracle 10] Récupérer un curseur générique dans un dataset
    Par aurelien.tournier dans le forum Accès aux données
    Réponses: 3
    Dernier message: 11/06/2007, 16h04
  2. Réponses: 11
    Dernier message: 15/11/2006, 16h52
  3. Réponses: 1
    Dernier message: 15/09/2006, 11h24
  4. [Delphi 5][Oracle]Verrouillage d'un dataset
    Par psycomel dans le forum Bases de données
    Réponses: 8
    Dernier message: 09/05/2005, 14h44
  5. [D7,ORACLE] : maître / esclave et modif d'un DataSet
    Par Magnus dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/04/2005, 09h29

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