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

Spring Java Discussion :

Spring jdbc.odbc résultat incorrecte pour un record


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Par défaut Spring jdbc.odbc résultat incorrecte pour un record
    Bonjour,

    J'avou que je suis un peu perdu et que je ne vois pas comment régler le problème que voici, j'espère que quelqu'un pourra me donner une piste parce que je suis vraiment à cours d'idée

    le code

    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
    27
    28
     
    public Symbol getSymbol(final String symbolValue) {
    			String query = "Select ascii, naam, font, Symbol, Unicode " +
    						" FROM AGIM_SYM " +
    						" WHERE Symbol = ?";
     
     
    		Symbol result = (Symbol)getJdbcTemplate().query(query, new Object[]{Integer.parseInt(symbolValue)},new ResultSetExtractor(){
    			public Object extractData(ResultSet rs) throws SQLException, DataAccessException {
    				Symbol s = null;
    				if(rs.next()){
    					final String unicodeValue = rs.getString(5).trim();
    					final SymbolEnum symbolEnum = SymbolEnum.getSymbolEnumFromCode(Integer.toString(rs.getInt(3)));
     
    					s = new Symbol(){
    						public SymbolEnum getSymbolType() { return symbolEnum;}
    						public String getUnicodeValue(){ return unicodeValue;}						
    					};					
    				}else{
    					System.out.println("SymBol not found " + symbolValue);
    				}
     
    				return s;
    			}			
    		});
     
    		return result;		
    	}
    Cette fonction retourne un résultat correct tout le temps, sauf pour UN SEUL record, le result set est vide si la valeur "200" est passée en argument. Le plus étrange, c'est qu'en remplaçant la clause where par Symbol > 199 order by symbol il me retourne bien le record, il est donc bien présent dans la DB. Par contre, symbol > 199 and symbol < 201 ne me retourne rien, c'est à n'y rien comprendre !

    La table est une table foxpro 3.0, j'ai réindexé et tenté de supprimer / recrée le record en question sans résultats. VU que c'est le dernier record de la table, j'ai également essayé d'ajouter un record supplémentaire au cas ou sans plus de résultat ...

    Quelqu'un aurait-il une idée de ce qu'il se passe ? de ce que je pourrai faire pour essayer de débuger ...

    pour info, le bean du dao :
    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
     
       <bean id="agimFoxProDS" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName">
                <value>sun.jdbc.odbc.JdbcOdbcDriver</value>
            </property>
            <property name="url">
              <value>jdbc:odbc:AGIM-FOXPRO</value>
            </property>
            <property name="username">
                <value/>
            </property>
            <property name="password">
                <value/>
           </property>
        </bean>

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 59
    Par défaut
    Je sais pas ce que c'est ton symbol mais il y aurait pas une histoire d'incompatibilité? Comme un caractère pas accepté ou illégale ou réservé; que ce soit dans ta base ou dans ton code d'ailleurs...

    Mohicane

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Par défaut
    Non ça ne vient pas d'une valeur inatentude dans la variable symbol, j'ai vérifié le contenu (correcte) et j'ai également essayé en passant la valeur hardcodée dans la query directement sans résultats

Discussions similaires

  1. [JDBC-ODBC] Etat de curseur non valide
    Par I o dans le forum JDBC
    Réponses: 7
    Dernier message: 04/05/2015, 12h22
  2. JDBC - ODBC - Dbase record oublié ?
    Par Eylir dans le forum JDBC
    Réponses: 0
    Dernier message: 20/04/2011, 17h43
  3. [Data] Best practice pour Spring JDBC
    Par hektoumayo dans le forum Spring
    Réponses: 1
    Dernier message: 05/11/2009, 16h32
  4. Réponses: 6
    Dernier message: 21/05/2007, 09h56
  5. [ODBC] erreur SQL pour les unions qui renvoient vide
    Par fabriceMerc dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/11/2003, 11h06

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