Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/08/2006, 14h36   #1
Membre régulier
 
Inscription : novembre 2005
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 107
Points : 75
Points : 75
Par défaut [JDBC] Sybase Open Server + JDBC

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 :
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é.
neuromencien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 16h05   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Est-ce que vous avez accès aux sources de l'OpenServer?

D'après vos commentaires, et mes (quelques peu nébuleux) souvenirs de programmation Open Server je pense que celui-ci est codé de façon très rigide, et valide strictement que le paramètre passé en input est bien un type MONEY (CS_MONEY_TYPE, en C). Ce qui est un peu dommage, parce que la conversion entre les divers type numériques est assez simple.

Par contre mes connaissances en Java (et JDBC) sont assez limitées. Une rapide recherche google semble confirmer votre expérience que jConnect utilise le type DECIMAL pour MONEY...

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 16h24   #3
Membre régulier
 
Inscription : novembre 2005
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 107
Points : 75
Points : 75
Malheureusement non je n'ai pas accès aux sources de l'open server. Donc je suis plutot en train d'essayer de passer un type utilisateur "money" au driver JDBC.
Merci pour votre réponse en tout cas, celà conforme mes impressions sur Open Server.
neuromencien est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h38.


 
 
 
 
Partenaires

Hébergement Web