IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Probleme avec CachedRowSetImpl


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Points : 65
    Points
    65
    Par défaut Probleme avec CachedRowSetImpl
    Bonjour, j'ai un probleme d'update de CachedRowSetImpl.

    En fait tout se passe bien lorsque je fait un update pour la premiere fois apres avoir fais un crset.execute(...);

    Mais il suffit d'essayer de refaire un update pour une seconde fois...et la ca marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javax.sql.rowset.spi.SyncProviderException: 1 conflicts while synchronizing
    J'ai deja fouiller google, mais ca ne m'a pas bcp aide.
    je sais que je sais rien. :-(

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Points : 65
    Points
    65
    Par défaut
    Je vais essayer d'etre un peu plus explicite.

    Ds le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    crset.updateRow();
    crset.acceptChanges(DBProperties.getInstance().getConn()); // ca deconne la, mais qu'a la 2ieme tentative, la 1ere fois tout marche bien.
    ...
    je sais que je sais rien. :-(

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Points : 65
    Points
    65
    Par défaut
    Bon voila...je modifie un peu le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    crset.updateRow();
    crset.acceptChanges(DBProperties.getInstance().getConn()); //ici tout marche bien
     
    crset.updateString("first_name", "new val");
    crset.updateRow();
    crset.acceptChanges(DBProperties.getInstance().getConn()); //et la ca leve une exception
    ...
    je sais que je sais rien. :-(

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Points : 65
    Points
    65
    Par défaut
    Et bien apparement soit personne n'a rien a proposer ou CachedRowSet n'est pas trop populaire.

    C'est quand meme bizarre, parcequ'apres chaque acceptChanges si je recree CachedRowSet tout marche. Est ce que cela veut dire qu'on ne peut pas appeler 2 fois acceptChanges sur un meme object de CachedRowSet ??
    je sais que je sais rien. :-(

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Points : 65
    Points
    65
    Par défaut
    Apparement j'ai pus detecter le pb.

    J'ai une colonne de type INTEGER UNSIGNED ds MySQL et c'est la le conflict en question, mais chose bizzare, le premier appel de acceptChanges() travaille correctement, tandisque que le second ...et je conprends pas pkoi.

    En modifiant la colonne en un simple INTEGER, tout travaille parfaitement autant de fois qu'il le faut.

    Quelqu'un a t-il une idee?
    je sais que je sais rien. :-(

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Points : 65
    Points
    65
    Par défaut
    Apres de tres grands efforts j'ai pus resoudre le probleme...disons je l'ai presque resolu.

    Je n'ai plus aucune exception. J'utilise comme il est mentionne ds la javadoc le SyncResolver (avant meme l'utilisation de SyncResolver ne donnait pas le resultat voulu).

    Mais il y a une autre pb qui a surgi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    while(resolver.nextConflict())
    {
    	if(resolver.getStatus() == SyncResolver.UPDATE_ROW_CONFLICT)
    	{
    		int row = resolver.getRow();
    		rowSet.absolute(row);
     
    		int colCount = rowSet.getMetaData().getColumnCount();
    		for(int j = 1; j <= colCount; j++)
    		{
    			if(resolver.getConflictValue(j) != null)
    			{
    				rowSetValue = rowSet.getObject(j);
    				conflictValue = resolver.getConflictValue(j);
     
    				// compare crsValue and resolverValue to determine
    				// which should be the resolved value (the value to persist)
    				resolvedValue = rowSetValue;
    				resolver.setResolvedValue(j, resolvedValue);
    			}
    			else
    			{
    				System.out.println("column " + j + " has no conflict " + rowSet.columnUpdated(j));
    			}
    		}
    	}
    }
    Le code ci-dessus fonctionne, du moins les valeurs de conflicts s'enregistrent ds la base, mais les valeurs des colonnes sans conflicts ne se renouvellent pas!! Et pourquoi cela? j'arrive pas a y comprendre.
    je sais que je sais rien. :-(

Discussions similaires

  1. [rowset]probleme avec la classe CachedRowSetImpl
    Par claire13 dans le forum JDBC
    Réponses: 1
    Dernier message: 29/04/2008, 23h01
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo