J'ai une application Java qui appelle des procédures stockées sur un serveur de base de données Sybase. Ces procédures stockées appellaient à leur tours des RPC via Sybase Open Server qui transforme ces appels RPC en appels de procédures stockées.

Cette application doit évoluer et doit appeller directement Sybase Open Server sans passer par l'intermédiaire de la base de données Sybase. Le problème c'est que l'open serveur à l'air beaucoup plus stricte que la bdd sur les formats. J'ai un champ au format monney. Avant je passait un Float à la bdd ca ne lui posait pas de problème. Mais Open Server refuse le Float. Il me renvoie une erreur du genre "Got bad datatype for parameter 7". J'ai donc regardé la correspondance Sybase <--> JDBC et j'ai vu que le type correspondant à "money" était "decimal". J'ai donc essayé ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
CallableStatement cs = conn.prepareCall("{call set_coupon(?,?,?,?,?,?,?,?,?,?,?,?,?)}");
cs.setObject(7, "0.00", Types.DECIMAL);
J'ai cependant toujours la même erreur. Est ce que quelqu'un sait quel type de dois utiliser, sachant que le type "money" n'existe pas en JDBC?

Merci d'avance.

PS : J'ai posté aussi ce message sur le forum JDBC car je ne savais pas lequel des deux était le plus approprié.