Bonjour,
Je développe actuellement un projet en Java (JDK 1.4) avec une connexion à une base de donnée SQL 2005. Pour les besoins d'un client, nous avons mis en place une procédure stockée que l'on appelle depuis l'application.
Dans cette procédure stockée, on effectue une insertion en boucle dans l'une des tables de la BD.
Pour générer la clé primaire à chaque insertion, je récupére le max de la table auquelle je rajoute 1. La clé primaire pour cette table est de type INT. La procédure fonctionne trés bien.
Le soucis majeur que nous rencontrons est le suivant :
Après avoir exécuté la requête, a un autre endroit dans l'application, il y a insertion dans la même table mais cette fois-ci en utilisant une requête. Le code est le suivant :
Le problème est que le new Identity(newObj); permettant en JAVA de générer une clé dans SQL, génére une clé déja existante, ce qui remonte systématiquement une erreur de duplication de la clé primaire... Et ce pb n'est apparu qu'après mise en place de la procédure stockée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 MonObjet newObj = new MonObjet(); new Identity(newObj); StringBuffer requete = new StringBuffer ("INSERT INTO MONOBJET VALUES (" + newObj.getId() + ", " +.............
Nous ne savons vraiment plus quoi faire, si l'un d'entre vous connait la solution, il serait aimable de nous aider.
Merci d'avance pour vos réponses.
Partager