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 :

[OracleCommand] Non retour de la cmd.ExecuteReader


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 67
    Points
    67
    Par défaut [OracleCommand] Non retour de la cmd.ExecuteReader
    Bonsoir,

    Je viens de passer mon après midi la dessus et je commence à compter les dents qu'il me reste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    using (OracleConnection conn = new OracleConnection(connectionString))
                    {
                        conn.Open();
                        using (OracleCommand cmd = new OracleCommand(cmdText, conn) { CommandType = CommandType.Text })
                        {
                            using (OracleDataReader dataReader = cmd.ExecuteReader())
                            {
                              /* Traitement */
                            }
                        }
                    }
    La commande est un select de base sur plusieurs tables.
    La commande fait 1000 caractères (moche mais pas le choix).

    Quand la commande est un simple " select 'toto' from matable1 ", ça passe.
    En revanche, la requête passe sans problème avec SQLdeveloper (2.5 sec).
    J'ai essayé avec un timeout de 0, 5 et par défaut.

    Merci de m'aider

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 67
    Points
    67
    Par défaut Quelques précisions
    Je suis reparti du départ.

    Après avoir progressivement ajouté tous les champs de la clause WHERE et ensuite toutes les colonnes retournées par mon SELECT (sans ORDER BY), ça fonctionne.

    L'ajout de l'ORDER BY et les deux champs (int et date) font planter.

    L'erreur est plus ou moins circonscrite car si j'enlève le champs date de l'order, ça fonctionne à nouveau.

    Le pourquoi reste toujours d'actualité.

    Une piste ?

  3. #3
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    La commande est un select de base sur plusieurs tables.
    La commande fait 1000 caractères (moche mais pas le choix).

    Quand la commande est un simple " select 'toto' from matable1 ", ça passe.
    En revanche, la requête passe sans problème avec SQLdeveloper (2.5 sec).
    J'ai essayé avec un timeout de 0, 5 et par défaut.

    Merci de m'aider
    Se serait bien de préciser l'erreur tout de même
    Je suppose malgré tout que vous prenez un timeout...

    ajouté tous les champs de la clause WHERE
    Les champs n'existe pas dans SQL on appel cela des colonnes...


    Peux on voir la requête(le texte)?

    Attention le timeout ce stipule en secondes pas en minutes!!!
    timeout=5=5secondes...

    Si vous retournez un grand nombre de lignes par le réseau celà peut parfois être très long...
    Si c'est un timout uniquement dans votre appli
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Se serait bien de préciser l'erreur tout de même
    Je n'ai pas d'erreur: c'est juste que la fonction ExecuteReader ne se termine jamais.

    Citation Envoyé par iberserk Voir le message
    Je suppose malgré tout que vous prenez un timeout...
    Si ça avait été un timeout, la fonction aurait retourné une erreur

    Citation Envoyé par iberserk Voir le message
    Les champs n'existe pas dans SQL on appel cela des colonnes...
    Merci pour le détail. Je tacherai d'être plus précis la prochaine fois.

    Citation Envoyé par iberserk Voir le message
    Attention le timeout ce stipule en secondes pas en minutes!!!
    timeout=5=5secondes...

    Si vous retournez un grand nombre de lignes par le réseau celà peut parfois être très long...
    Si c'est un timout uniquement dans votre appli
    Je préciserai les unités aussi car pour l'occasion ça me paraissait évident.
    Sur la même machine avec SqlDeveloper, ça prend moins de 3 secondes.
    Alors je me dis qu'au bout de 15, il y a peut etre un problème.

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    La commande fait 1000 caractères (moche mais pas le choix).
    Il me semble que le max pour une ligne est 1024.
    La solution consisterait à insérer queques CRLF au mileu de cmdText.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Citation:
    Envoyé par iberserk
    Se serait bien de préciser l'erreur tout de même
    Je n'ai pas d'erreur: c'est juste que la fonction ExecuteReader ne se termine jamais.

    Citation:
    Envoyé par iberserk
    Je suppose malgré tout que vous prenez un timeout...
    Si ça avait été un timeout, la fonction aurait retourné une erreur

    Citation:
    Envoyé par iberserk
    Les champs n'existe pas dans SQL on appel cela des colonnes...
    Merci pour le détail. Je tacherai d'être plus précis la prochaine fois.

    Citation:
    Envoyé par iberserk
    Attention le timeout ce stipule en secondes pas en minutes!!!
    timeout=5=5secondes...

    Si vous retournez un grand nombre de lignes par le réseau celà peut parfois être très long...
    Si c'est un timout uniquement dans votre appli
    Je préciserai les unités aussi car pour l'occasion ça me paraissait évident.
    Sur la même machine avec SqlDeveloper, ça prend moins de 3 secondes.
    Alors je me dis qu'au bout de 15, il y a peut etre un problème.
    Oui la précision peut éviter 50 messages de confirmations avant de commencer à réfléchir au problème


    Pouvez vous poster votre requête?

    Alors je me dis qu'au bout de 15, il y a peut etre un problème.
    L'avez vous laissé tourner jusqu'au bout? vous ne postez pas le code dans lequel vous parcourez votre reader?
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

Discussions similaires

  1. [Débutant] Non retour en début de page
    Par lucazzo dans le forum ASP.NET
    Réponses: 5
    Dernier message: 10/01/2013, 09h40
  2. soucis de non-retour à la ligne sur le shell à cause de variable PS1
    Par frenchlion dans le forum Shell et commandes POSIX
    Réponses: 3
    Dernier message: 05/10/2011, 17h45
  3. Gestion non retour sqlserver
    Par Nako_lito dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/09/2008, 12h16
  4. Réponses: 2
    Dernier message: 24/09/2008, 10h48
  5. Obliger dans une chaine le non retour à la ligne
    Par M1000 dans le forum Langage
    Réponses: 2
    Dernier message: 19/12/2007, 10h50

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