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

DB2 Discussion :

requete sql pas executée


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Par défaut requete sql pas executée
    Bonjour,

    je poste ici car j'ai un soucis de taille que je ne comprend pas.

    Ma situation:
    je suis nouveau dans mon entreprise et je suis en charge de maintenir l'intranet.
    L'intranet en PHP pioche de temps en temps des données dans une base de données DB2 hébergée sur un AS400.
    Le driver utilisé est iSeriesAccess-5.4.0-1.6.i386 sur un serveur Debian.

    Tout marche bien il n'y a pas de soucis.

    Le problème c'est que je cherche a faire un serveur de test équivalant à mon serveur de production.

    J'ai donc tout installer et tout semble marcher.
    Par contre je rencontre un soucis lors de CERTAINES requêtes.

    Les requêtes basiques marchent très bien mais quand on gonfle un peu la requête cela met une page blanche.

    Aucun message d'erreur.

    Je tiens à préciser que la requête marche sur mon serveur de production. Le code est identique.

    J'ai configurer le driver ODBC de la même façon que sur le serveur de production (je pense).

    je ne vois donc pas pourquoi certaines requêtes marchent et d'autres pas.

    Merci d'avance.

    emilien.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,

    oué enfin là vous dites : j'ai un problème, je ne sais pas ce que c'est, je ne peux pas l'expliquer donc demerdez-vous pour me trouver une solution.

    Et comment qu'on fait nous ?

    edit: donc choppez les requêtes qui ne marchent pas et essayé de trouver des logs quelque part, quittes à mettre en mode debug votre applicatif pour essayer de remonter à la source.

    Par exemple sur les passage que vous suspecté, loggez l'heure de début d'execution, la fin (s'il y en a une) les éventuels code SQL retour, etc.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Par défaut
    Bonjour,

    en fait j'ai essayé de debugger mon code en écrivant dans un fichier les étapes clés. Il s'avère que le code bloque sur un while

    mon code est le suivant :

    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
    <div style="margin-left:40px"> $req = "select 
        t1.numvag, t1.libvag, 
        t2.numsup, 
        t3.seqsup, t3.numliv, t3.codpro, t3.ds1pro, t3.uvccde, t3.uvcliv, t3.zonsts, t3.allsts, t3.dplsts, t3.nivsts, t3.zonpic, t3.allpic, t3.dplpic, t3.nivpic, 
        t4.codprn, 
        t5.ds1pro as libprn, 
        t6.qtecol, 
        t7.codcli, t7.codtra, t7.refliv, t7.datliv, t7.msgliv1, t7.msgliv2, 
        t8.nobl, t8.nomcli, t8.prenomcli, t8.adr1, t8.adr2, t8.adr3, t8.cp, t8.ville, t8.pays, t8.tel1, t8.tel2, t8.magasin, t8.codepays, 
        t9.cirpic, 
        t10.nomcli as codcli2</div>  <div style="margin-left:40px">  from (((((((((fge50.gevag as t1 left join fge50.gesupe as t2 on t1.numvag=t2.numvag) 
        left join fge50.gesupd as t3 on t2.numsup=t3.numsup and t2.snusup=t3.snusup) 
        left join fge50.geprnd as t4 on t3.codpro=t4.codpro and t3.codact=t4.codact and t3.codprn=t4.codprn)
        left join fge50.geprne as t5 on t4.codprn=t5.codprn and t4.codact=t5.codact )
        left join distrimag.genomenclature as t6 on t3.codpro=t6.codpro)
        left join fge50.gelive as t7 on t3.numliv=t7.numliv and t3.snuliv=t7.snuliv ) 
        left join distrimag.adrclient as t8 on ( case when substr(t7.msgliv1, 1, 1)<>'#' then 0 when substr(t7.msgliv1, 8, 1)<>'#' then substr(t7.msgliv1, 2, 7) else substr(t7.msgliv1, 2, 6) end)=t8.nobl) 
        left join fge50.gepic as t9 on t3.codpro=t9.codpro and t3.codact=t9.codact) 
        left join fge50.gecli as t10 on t7.codcli=t10.codcli and t3.codact=t10.codact)
        where t1.numvag=11185040";</div>
    $result = odbc( _AS400_ , $req );
    while( $row = odbc_fetch_array( $result ) ){
     
    .....
     
    }
    Cette requête retourne une ligne (testé) mais le code ne rentre pas dans le while.

    J'ai mis des log avant, dedans et après le while et je m’aperçois que le code s'arrête avant d'entrer dans le while.

    J'espère que je vous ai apporté plus d'éléments.

    Merci d'avance.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Mais votre result set est vide ?
    La requête s'execute bien (dans votre code) ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Par défaut
    Le résultset donne : Resource id #90

    Or apparemment s'il y a une erreur à l’exécution je devrai avoir false et doit renvoyer une ressource si elle marche.

    De plus j'ai tester la même requête en dur sur mon interface de l'AS400 et cela me retourne bien une ligne.

    La même requête marche aussi sur mon autre serveur web.

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Je ne comprend pas ce que veux dire : Resource id #90

    Ce que je cherche à comprendre c'est de savoir si votre requete s'execute bien => oui / non ?

    Si oui, le problème n'a strictement rien à voir avec l'as400 ni avec votre driver odbc/jdbc.

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

Discussions similaires

  1. [A-03] Requete SQL qui ne s'execute pas
    Par Flo435 dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/02/2009, 15h37
  2. Requete SQL ; pas si simple ?!
    Par lamaison dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/09/2007, 10h14
  3. [MySQL] php et requete sql mal executée
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/04/2007, 12h16
  4. Réponses: 1
    Dernier message: 14/02/2007, 17h08
  5. requete sql pas sans résulta
    Par sabrina22 dans le forum Bases de données
    Réponses: 4
    Dernier message: 01/03/2006, 08h18

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