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 :

onnées non valides pour l'insertion, suivant le mode de connexion.


Sujet :

DB2

  1. #1
    mx5
    mx5 est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 13
    Points
    13
    Par défaut onnées non valides pour l'insertion, suivant le mode de connexion.
    Bonjour,

    Je travaille sur un projet dont la base de données cible est DB2, en local je suis sur postgres.
    L'appli doit parser un fichier XML, puis insérer en base les données.

    Tout ce passait bien en local, comme sur l'environnement cible, sauf depuis l'arrivée d'un nouveau fichier XML :
    avec ce fichier les tests se déroulent correctement en local, mais avec la base DB2, on obtient une erreur lors de l'insertion des données.
    La connexion est réalisée via ODBC.
    Message d'erreur :
    sqlException: [IBM] [CLI Driver] CLI0123E Type de données SQL hors des valeurs autorisées SQLSTATE=S1004 {SQLBindParameter}
    J'ai vu à l'adresse suivante, que le driver était peut-être responsable...
    http://<br /> http://forums11.itrc....=1317150<br />

    Quelqu'un saurait-il m'expliquer ce qu'il se passe ? Et comment résoudre ce problème ? Sachant que je ne suis pas sûr que le client puisse changer son driver, si c'est ça le problème

    Merci d'avance à ceux qui auraient rencontré ce souci !

  2. #2
    Membre éclairé Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612
    Points : 690
    Points
    690
    Par défaut
    Je pense que tu as un "bug" dans le pilote DB2 (il ne semble pas reconnaitre le type de données que tu lui passe (ou plutot que ODBC passe).

    Dans quel langage développes tu ? si c'est Java abandonne ODBC pour un driver de type 2 ou 4
    - Informaticien passionné
    - ( java, c++, cobol, php, asp, ... )
    - http://www.berthou.com/fr/

  3. #3
    mx5
    mx5 est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Merci pour ces infos.
    Je développe effectivement en java, je vais voir si on peut changer pour un driver de type 2 ou 4.

  4. #4
    Membre éclairé Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612
    Points : 690
    Points
    690
    Par défaut
    Si tu as ce probleme avec la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     statement.setObject(i, rs.getObject(i), typ.intValue()) ;
    n'hesite pas à remplacer cela pour un type particulier (j'ai eu ce probleme avec les BigDecimal).

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
           	  if ( typ.intValue() == 3 ) {
           		  statement.setBigDecimal(i, rs.getBigDecimal(i)) ;
           	  } else {
           		  statement.setObject(i, rs.getObject(i), typ.intValue()) ;
           	  }
    - Informaticien passionné
    - ( java, c++, cobol, php, asp, ... )
    - http://www.berthou.com/fr/

  5. #5
    mx5
    mx5 est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    J'ai fait une tentative avec un accès JDBC, hélas j'ai eu le problème suivant :
    Echec de l'exécution en raison d'une erreur de protocole de distribution qui affectera l'exécution ultérieure des commandes DDM ou des instructions SQL.
    Une connexion à la base de données n'a pas pu être établie car le gestionnaire 0x2407 au niveau 0x3 n'est pas pris en charge. ERRORCODE=-4499, SQLSTATE=58010
    Je n'ai pas trouvé rapidement comment résoudre ce pb.
    J'ai donc repris mon code pour typer les données à insérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    j ai remplacé 
    statement.setObject("maColonne", maValeur) 
    par 
    statement.setObject("maColonne", maValeur, Types.NUMERIC) ;
    Et là je te remercie graaandement rberthou, ça fonctionne !!

  6. #6
    Membre éclairé Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612
    Points : 690
    Points
    690
    Par défaut
    De rien...

    Quand tu utilises setObject precise toujours le type de l'objet en question (et même dans certain cas tu peux avoir des problèmes avec DB2 (BigDecimal).
    - Informaticien passionné
    - ( java, c++, cobol, php, asp, ... )
    - http://www.berthou.com/fr/

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

Discussions similaires

  1. Clé non valide pour l'utilisation dans l'état spécifié
    Par freud dans le forum Windows Forms
    Réponses: 16
    Dernier message: 17/09/2008, 22h56
  2. Problème de marge non valide pour ce format
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/07/2008, 14h55
  3. Parametres non valides pour la copie
    Par valou2006 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 19/04/2007, 10h08
  4. SQL et GUID : Valeur de caractère non valide pour la ....
    Par jackfirst72 dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/03/2007, 10h46
  5. message HTML/XML non valide pour ie
    Par ep31 dans le forum Valider
    Réponses: 6
    Dernier message: 08/03/2006, 20h19

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