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++Builder Discussion :

[Oracle] Différence de résulats sur une même requête


Sujet :

C++Builder

  1. #1
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut [Oracle] Différence de résulats sur une même requête
    Bonjour,

    je suis actuellement en train de réaliser une module pour une application qui doit faire une expertise sur des critères spécifiques.
    Les données sont contenues dans une base Oracle (10g) et j'accède à cette base via les composants ADO et les pilotes OLE Oracle (client 10g également).
    Ma requête qui me sert à faire mon expertise est une simple SELECT intégrant un COUNT (pour le nombre d'opérations effectué sur une période donnée), un GROUP BY (pour grouper par critère) et un ORDER BY (pour tout bien ordonnancer).
    La requête est valide mais j'ai un soucis quand je l'exécute. Si je l'exécute sous Builder, j'obtiens 25 enregistrements comme résultat. Par contre, si j'exécute la même requête (obtenu via un copier/coller du contenu de ma variable) sous Oracle SQL Developper (outil d'accès à une base Oracle éditée par Oracle), j'obtiens 1223 enregistrements ...
    Je n'arrive pas à comprendre d'où peut venir une telle différence...
    Si quelqu'un pouvait m'expliquer mon soucis, je lui en serais gré
    Merci

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,

    Hummm .... et un simple ' SELECT *' (sans Count() et cie, rien d'autre) te renvoie le même nombre d'enregistrements des deux côtés ?

    ++

  3. #3
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    2464 lignes obtenues sous Oracle SQL Developper pour 39 () sous Builder.
    Même méthode de test (copier/coller de la requête) et j'ai juste enlevé le COUNT de ma requête et ajouter le champs utilisé dans le COUNT dans mon GROUP BY (pas le choix sinon erreur ORA-00979).

  4. #4
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bon, je pense qu'il est inutile de te demander si tu as laissé qqpart (par hasard) un filtre éventuel sur un DataSource/DataSet, enfin qqchose du genre ... a mon avis tu as surement du déjà vérifié tout ca.


    Je vais peut être dire une bétise, mais tant pis (sait on jamais):
    -> As tu essayé de changer la propriété de CursorType (dans ton ADOQuery, c'est bien un objet de ce type, non ?), et de le passer a ctDynamic par ex ?

  5. #5
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Citation Envoyé par Sunchaser Voir le message
    Bon, je pense qu'il est inutile de te demander si tu as laissé qqpart (par hasard) un filtre éventuel sur un DataSource/DataSet, enfin qqchose du genre ... a mon avis tu as surement du déjà vérifié tout ça.
    Je n'utilise jamais les filtres au niveau des composants ADO... Je fais toujours mes filtres par requête, je trouve ça plus clair
    Citation Envoyé par Sunchaser Voir le message
    Je vais peut être dire une bêtise, mais tant pis (sait on jamais):
    -> As tu essayé de changer la propriété de CursorType (dans ton ADOQuery, c'est bien un objet de ce type, non ?), et de le passer a ctDynamic par ex ?
    Aucune différence au niveau du résultat

  6. #6
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Je crois avoir trouvé la solution...

    Dans mon SELECT, j'avais une clause WHERE sur des dates et à première vue, Oracle SQL Developper gère correctement le format de date Français alors que ce n'est pas le cas en passant ma requête via les composants ADO.
    En rajoutant un to_date sur mes dates, j'ai réussi à obtenir les mêmes résultats sur les 2 applications.

    Merci à Sunchaser de s'être penché sur mon problème

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

Discussions similaires

  1. getdate() - Même résultat sur une même requête?
    Par Baquardie dans le forum Développement
    Réponses: 3
    Dernier message: 27/09/2007, 15h42
  2. getdate() - Même résultat sur une même requête?
    Par Baquardie dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/09/2007, 15h42
  3. [Oracle 8i]Recherche doublon sur une même table
    Par fmoriet dans le forum Oracle
    Réponses: 3
    Dernier message: 01/08/2006, 10h09
  4. 2select sur une même requête
    Par MORAS dans le forum Access
    Réponses: 2
    Dernier message: 23/01/2006, 10h12
  5. Calculer différence date champ d'une même requête
    Par priest69 dans le forum Access
    Réponses: 20
    Dernier message: 11/11/2005, 20h15

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