salut à tous !
voici mon pb : j'ai une table contrat et une table avenant ; les 2 sont reliées par une relation de 1 à n (pour un contrat il existe 1 ou n avenants et 1 avenant est lié à 1 seul contrat) sur mon formulaire,je dois en même temps que je crée un nouveau contrat,créer son premier avenant . voici mon code de creation du contrat : [code]DataRow d = new DataRow(labase.qryContrat);
et juste après ce code qui crée un nouvel enregistrement dans la base de donnée, j'ai mon code de création de mon premier avenant que voici :
[code]Connection conn = labase.SysRegloDB.getJdbcConnection();
ResultSet res;
Statement stat = conn.createStatement();
String str="select max(idcontrat)as idcontrat from tblcontrat";
res= stat.executeQuery(str);
labase.qryAvenant3.open();
DataRow d1 = new DataRow(labase.qryAvenant3);
Au fait à ce niveau là je vais recupérer le dernier identifiant auto de ma table contrat comme clé etrangère de mon enregistrement avenant. mais je reçois ce message d'erreur que je ne comprends pas:[quote]java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.validateCursorPosition(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
at projetsysreglo.FrmGestion.Validercontrat_actionPerformed(FrmGestion.java:2536)
at projetsysreglo.FrmGestion_Validercontrat_actionAdapter.actionPerformed(FrmGestion.java:4825)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:141)
at java.awt.Dialog$1.run(Dialog.java:540)
at java.awt.Dialog.show(Dialog.java:561)
at projetsysreglo.FenetrePpale.menugestion_actionPerformed(FenetrePpale.java:516)
at projetsysreglo.FenetrePpale_menugestion_actionAdapter.actionPerformed(FenetrePpale.java:528)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1113)
at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:943)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
[/quote]
Il me semble que la requête ne ramène aucune valeur or dans l'analyseur de requête le requête ramène bel et bien la valeur escomptée.
Aidez moi SVP !
__________________________
Seul le travail paye !
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !
Salut oziriss
Je crois que ton premier bout de code ne s'execute pas corectement, aucun enregistrement n'est ajouté, et en mettant:
String str="select max(idcontrat) as idcontrat from tblcontrat";
res= stat.executeQuery(str);
La requête va retourner une valeur nulle qui peut être ne peut être stocké dans ta variable res ce qui cause l'erreur.
Bonne chance
__________________________
L'une des fonctions principales d'un ami consiste à subir, sous une forme plus douce et symbolique, les châtiments que nous désirerions, sans le pouvoir, infliger à nos ennemis. Aldous Huxley
Le meilleur des mondes
Mais pourtant à chaque fois je vérifie dans ma base de donnée et il y'a bel et bien une nouvelle ligne qui s'ajoute à la table contrat.
__________________________
Seul le travail paye !
Donc il ne reste plus que cette probabilité:
Voici l'erreur-->max(idcontrat) as idcontrat
T'as mis comme alias le nom d'un champs existant, peut être c'est de là essaie pour voir avec par exemple: select max(idcontrat) as idctr from tblcontrat
__________________________
L'une des fonctions principales d'un ami consiste à subir, sous une forme plus douce et symbolique, les châtiments que nous désirerions, sans le pouvoir, infliger à nos ennemis. Aldous Huxley
Le meilleur des mondes
Non c pas là le pb ! parce que quand je change c'est le même problème avec le même message d'erreur :[quote]java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position.
[/quote]. La requête ne s'execute pas il me semble et donc ne ramène aucune ligne . or dans l'analyseur de requête elle s'execute bien.
__________________________
Seul le travail paye !
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !
et maintenant quand je désactive cette instruction :[code] // d1.setInt(12, (res.getInt("test")));[/code]
voici le nouveau message que je reçois :[quote]See com.borland.dx.dataset.DataSetException error code: BASE+66
com.borland.dx.dataset.DataSetException: [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.
[/quote]
je ne comprends vraiment pas ce message !
__________________________
Seul le travail paye !
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !