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

JDBC Java Discussion :

problème Index de colonne


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 99
    Points : 44
    Points
    44
    Par défaut problème Index de colonne
    Bonjour,

    j'utilise ibatis pour exécuter mes requêtes .Quand je lance ma requête, j'ai cette erreur :

    --- The error occurred while applying a parameter map.
    --- Check the AnsweredEmail.EmailsRepondusCount-InlineParameterMap.
    --- Check the parameter mapping for the 'startDate' property.
    --- Cause: java.sql.SQLException: Index de colonne non valide
    Caused by: java.sql.SQLException: Index de colonne non valide


    Voici ma requête :

    SELECT DISTINCT REQ.REQUESTEMAILBOX, Count(*) AS NBREQUETES, REGEXP_SUBSTR(ACCOUNTGROUPLABELS.LABEL,'([^[:blank:]]+)') AS CRCM
    FROM TMI.REQUEST REQ, TMI.REQUESTSTATEVENT RSE, TMI.STATEVENT SE, TMI.REQUESTSTATEVENTEX RSEX, TMI.ACCOUNTGROUPLABELS AGL
    where
    SE.EVENTDATE BETWEEN #startDate# and #endDate# AND
    REQ.REQUESTID = RSE.REQUESTID AND
    RSE.REQUESTEVENTKIND = 17 AND
    RSE.STATEVENTID = SE.STATEVENTID AND
    RSE.STATEVENTID = RSEX.STATEVENTEX1 AND
    RSE.ACCGROUPID = AGL.ACCOUNTGROUPID AND
    AGL.LOCALE like '%fr%' AND
    RSEX.EXTYPE = 2
    GROUP BY REQ.REQUESTEMAILBOX, REGEXP_SUBSTR(AGL.LABEL,'([^[:blank:]]+)')
    Order by REGEXP_SUBSTR(AGL.LABEL,'([^[:blank:]]+)'),REQ.REQUESTEMAILBOX



    D'où vient l'erreur ?

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Je ne connais pas Ibatis, alors je vais peut être dire des betises ...

    Le message

    "The error occurred while applying a parameter map"

    laisserait à penser que quand tu mets à jour les paramètres de ta requete, tu n'utilises pas la bonne colonne. Un peu comme si avec un PreparedStatement tu essayais de mettre à jour le paramètre 0

    l'erreur se produit à l'exécution ou avant ou apres ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 99
    Points : 44
    Points
    44
    Par défaut
    Merci pour la réponse précédente mais ça coince toujours

  4. #4
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par fiatlux Voir le message
    Merci pour la réponse précédente mais ça coince toujours
    Il faut que tu nous donne plus de détails, sans quoi on ne peut pas vraiment t'aider.

    Y a t-il une trace de l'exception ? Peux tu nous montrer un bout de code java ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  5. #5
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 99
    Points : 44
    Points
    44
    Par défaut another error
    Finallement, j'ai résolu la précédente...

    Mais maintenant il y'a une autre requête qui coïnce la voici dans mon fichier Requete.xml :
    <typeAlias alias="Periode" type="com.projet.ibatis.model.Periode"/>

    <typeAlias alias="ResultBean" type="com.projet.ibatis.model.ResultBean"/>
    <select id="getRequetesCount" parameterClass="Periode" resultClass="ResultBean">

    <![CDATA[
    SELECT BAL, Sum(EnStock)
    From
    (

    SELECT req.REQUESTEMAILBOX as BAL, Count(BAL) AS EnStock

    FROM TMI.REQUEST req WHERE req.REQUESTCREATIONDATE BETWEEN #startDate# AND #endDate# GROUP BY req.REQUESTEMAILBOX

    Union

    SELECT REQST.REQUESTEMAILBOX AS BAL, Count(REQST.REQUESTEMAILBOX) AS EnStock

    FROM TMI.REQUEST AS REQST, TMI.REQUESTSTATEVENT AS RSE, TMI.REQUESTSTATEVENTEX AS RSEEX, TMI.STATEVENT AS SEV

    WHERE SEV.EVENTDATE BETWEEN #startDate# AND #endDate#

    AND REQST.REQUESTID = RSE.REQUESTID AND RSE.STATEVENTID = SEV.STATEVENTID
    AND RSE.REQUESTEVENTKIND = 2 AND RSEX.STATEVENTID = RSE.STATEVENTID
    AND RSEX.EXTYPE = 7 GROUP BY REQST.REQUESTEMAILBOX
    )
    Group by BAL
    ]]>
    </select>



    ma méthode dans ma classe DAOimpl :

    @SuppressWarnings("unchecked")
    public List<ResultBean> getEmailsRecus(Date startDate, Date endDate) {
    return getSqlMapClientTemplate().queryForList("getRequetesCount", new Periode(startDate, endDate));
    }

    et enfin ma classe Periode :

    private Date startDate;// +getter +setter
    private Date endDate;// +getter +setter


    public Periode(Date starDate, Date endDate){
    this.startDate= starDate;
    this.endDate = endDate;
    }

    la classe ResultBean :

    private String label; // getter + setter
    private String requestEmailBox;// getter + setter
    private Long total;// getter + setter



    voici l'erreur :

    19279 [main] ERROR com.projet.ibatis.test.dao.MyClassDaoTest - SqlMapClient operation; invalid ResultSet access for SQL []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
    --- The error occurred in com/projet/ibatis/model/Requete.xml.
    --- The error occurred while applying a parameter map.
    --- Check the Requete.getRequetesCount-InlineParameterMap.
    --- Check the parameter mapping for the 'startDate' property.
    --- Cause: java.sql.SQLException: Index de colonne non valide
    Caused by: java.sql.SQLException: Index de colonne non valide




    Merci d'avance

  6. #6
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    et on peut savoir comment tu as corrigé ton premier problème ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  7. #7
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 99
    Points : 44
    Points
    44
    Par défaut
    j'ai modifé la requête, il y'avait une erreur sur l'alias d'une table et j'ai rajouté les alias pour le parameterClass et resultClass....J'ai refais la même chose avec la deuxième requête ,ça ne passe pas

  8. #8
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 99
    Points : 44
    Points
    44
    Par défaut Youpi
    J'ai trouvé et maintenant ça marche !!!!!!

    Il y'avait 2 erreurs...Voilà ce qu'il fallait faire :

    1. bie vérifier les alias dans mes requêtes sql
    2. le mapping dans mon fichier Requete.xml .Utiliser ResultMap et non ResultClass comme suit :

    <resultMap id="getResultStat" class="com.projet.ibatis.model.ResultBean">
    <result property="requestEmailBox" column="REQUESTEMAILBOX" javaType="java.lang.String" />
    <result property="total" column="total" javaType="java.lang.Long" />
    </resultMap>


    dans la requête devient :

    <select id="getRequetesCount" parameterClass="Periode" resultMap="getResultStat">

Discussions similaires

  1. [AC-2007] Problème index liste déroulante à deux colonnes
    Par Mut dans le forum VBA Access
    Réponses: 7
    Dernier message: 30/09/2010, 11h45
  2. problème alignement de colonnes d'un tableau
    Par freija dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 18/08/2006, 15h34
  3. probléme de placement colonne droite css
    Par speedylol dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/07/2006, 09h37
  4. indexer les colonnes de type TEXT
    Par Bourak dans le forum Outils
    Réponses: 3
    Dernier message: 09/05/2006, 16h02
  5. Problème avec redimentionnement colonne dbgrid
    Par Oluha dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/10/2005, 11h19

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