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

Sybase Discussion :

[Sybase] Insertion d'un numérique en JAVA


Sujet :

Sybase

  1. #1
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut [Sybase] Insertion d'un numérique en JAVA
    Salut,

    Bon en théorie il ne faut pas poster a plusieurs endroits mais puisque mon problème est autant JAVA que Sybase, je me permets d'ouvrir ce post avec la référence du premier :

    http://www.developpez.net/forums/d79...r/#post4567156

    Grosso modo mon souci, j'ai une table déclaré comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table TESTDBUNIT
    (
    ID NUMERIC(5) IDENTITY PRIMARY KEY NOT NULL,
    FIELD_1 NUMERIC(1,0) default 0,
    FIELD_2 NUMERIC(1,0) default 0,
    )
    go
    Avec le code suivant j'ai un souci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Class.forName("com.sybase.jdbc2.jdbc.SybDriver");
    Connection conSybase = DriverManager.getConnection("jdbc:sybase:Tds:neptune.sungard-finance.fr:4126", "cis", "***");
     
    PreparedStatement stmt =conSybase.prepareStatement("INSERT INTO TESTDBUNIT VALUES (?, ?)");
     
    stmt.setLong(1,Long.valueOf(1));
    stmt.setBigDecimal(2,BigDecimal.valueOf(1));
     
    stmt.executeUpdate();
    stmt.close();
    conSybase.close();
    En effet j'insère 1 et 0 et non 1 et 1

    Or Numeric doit normalement être équivalent a BigDecimal en Java donc ca doit être correct de faire setBigDecimal.

    Avec NUMERIC(5) à la place de NUMERIC(1), ca fonctionne

  2. #2
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 134
    Points : 168
    Points
    168
    Par défaut
    Bonjour,

    Un champ NUMERIC(1,0) ne peut contenir que des entiers allant de -9 à 9.
    Est-ce que BigDecimal.valueOf(1) entre dans ces critères?
    Pouvez-vous afficher la valeur renvoyée par cette méthode?
    DBA sybase confirmé
    Cherche un poste sur Paris

  3. #3
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    La valeur est 1, ce qui rentre bien dans les bornes voulues.
    J'ai effectivement oublié de revenir sur ce post mais c'est effectivement un bug du driver jconn. Je suis passé sur les versions supérieures et c'est ok maintenant.

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

Discussions similaires

  1. insertion dans une BDD en java
    Par Sanaa25 dans le forum Requêtes
    Réponses: 5
    Dernier message: 09/03/2010, 09h35
  2. [JDBC] Insertion d'un numérique en erreur
    Par hugo123 dans le forum JDBC
    Réponses: 4
    Dernier message: 17/08/2009, 09h43
  3. insertion dans table oracle via java ?
    Par ra'uf dans le forum JDBC
    Réponses: 13
    Dernier message: 01/06/2009, 00h39
  4. Overflows numériques, pourquoi Java ne les gère pas ?
    Par Baptiste Wicht dans le forum Langage
    Réponses: 33
    Dernier message: 18/12/2007, 10h21
  5. [SYBASE] Insert sur view
    Par P'tit Jean dans le forum Sybase
    Réponses: 4
    Dernier message: 31/10/2003, 12h21

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