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