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 :

[JDBC][ORACLE][JAVA] Pb de Concurrency


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut [JDBC][ORACLE][JAVA] Pb de Concurrency
    Salut,

    je rencontre un pb lorsque je veux faire une opération de deleteRow()

    En effet, j'ai le message d'erreur suivant :

    ERROR dans TableToVueModel.deleteRow(1)
    java.sql.SQLException: Opération non valide sur un ensemble de résultats de type read-only : deleteRow

    même si j'ai bien choisi de mettre la concurrency à CONCUR_UPDATABLE

    C'est vraiment bizarre, on dirait qu'il ne tient pas compte de la commande

    Quelqu'un peut-il m'aider sur le sujet ?

    Merci d'avance

    PS : j'utilise la version ojdbc14.jar pour me connecter à la base de données Oracle


    Voici le programme en partie que j'ai fait :

    public class Launch {

    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Connection conn;

    try {
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521/XE","titi","toto");
    dataBaseManager frameDB = new dataBaseManager(conn);

    } catch (SQLException e) {
    // TODO Auto-generated catch block
    logException( e );
    }

    }

    public void changeDeTable(String nomTable)
    {
    this.nomTable = nomTable;
    try
    {
    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_UPDATABLE);
    rs = stmt.executeQuery("select * from "+nomTable);
    rsmd = rs.getMetaData();
    }
    catch(Exception e)
    {
    System.out.println("ERROR dans TableToVueModel.changeDeTable("+nomTable+")");
    System.out.println(e+"\n");
    }
    fireTableStructureChanged();
    }

    public void deleteRow(int row)
    {
    try
    {
    rs.absolute(row+1);
    rs.deleteRow();
    }
    catch(Exception e)
    {
    String msg = "ERROR dans TableToVueModel.deleteRow("+row+") \n"+e;
    System.out.println(msg);
    JOptionPane.showConfirmDialog(null,msg,"Comidoc Diffusion ERROR ",JOptionPane.CANCEL_OPTION,JOptionPane.ERROR_MESSAGE);
    }
    fireTableStructureChanged();
    fireTableDataChanged();
    }
    Rq : avec la commande

    ResultSet resultat.getConcurrency();
    j'ai CONCUR_READ_ONLY

    alors qu'avec la commande

    ResultSet resultat.getStatement().getResultSetConcurrency();
    j'ai CONCUR_UPDATABLE

    Strange non
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Par défaut
    Cela ressemble vraiment à un problème avec le driver. Tu as essayé avec le drivers natif ? Avec une version plus récente du driver thin ?
    Tu peux aussi tester ce bout de code sur une autre BDD (MySql, HSqlDB, ...) pour voir si le problème provient effectivement du driver thin oracle.

    Bon courage,

    Matthieu

  3. #3
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    question bete, mais tu es sur que ton utilisateur a les droits sur delete dans cette base ?

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut
    Citation Envoyé par lunatix
    question bete, mais tu es sur que ton utilisateur a les droits sur delete dans cette base ?
    Oui, car j'ai fais une commande direct en sql et c'est ok

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut
    Citation Envoyé par McFoggy
    Cela ressemble vraiment à un problème avec le driver. Tu as essayé avec le drivers natif ? Avec une version plus récente du driver thin ?
    Tu peux aussi tester ce bout de code sur une autre BDD (MySql, HSqlDB, ...) pour voir si le problème provient effectivement du driver thin oracle.

    Bon courage,

    Matthieu
    Qu'est que tu appelles les programmes natifs ??
    Pour les autres bases, je ne les aie jamais utiliser avant, est-ce dur à les metttre en place ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Par défaut
    Citation Envoyé par inilaug
    Qu'est que tu appelles les programmes natifs ??
    J'ai parlé de driver natif pas de programme natif, ie utilise le driver OCI d'Oracle plutôt que le driver thin.

    Pour ce qui est de tester avec d'autres bases c'est relativement facile.

    Tu peux tester avec hsqldb qui est une BDD java que tu peux embarquer dans ton application. Tu a juste à modifier les le driver à utiliser et à créer ta table pour effectuer ton test. Idem avec MySQL qui requiert cependant une installation à part.

    Matthieu

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut
    Citation Envoyé par McFoggy
    J'ai parlé de driver natif pas de programme natif, ie utilise le driver OCI d'Oracle plutôt que le driver thin.

    Pour ce qui est de tester avec d'autres bases c'est relativement facile.

    Tu peux tester avec hsqldb qui est une BDD java que tu peux embarquer dans ton application. Tu a juste à modifier les le driver à utiliser et à créer ta table pour effectuer ton test. Idem avec MySQL qui requiert cependant une installation à part.

    Matthieu
    même erreur avec OCI pas encore essayer avec les autres bases

  8. #8
    Membre expérimenté
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Par défaut
    Citation Envoyé par inilaug
    même erreur avec OCI pas encore essayer avec les autres bases
    Il faudrait regarder sur Metalink (le support Oracle) pour voir si le problème est déja référencé.
    Ce que tu peux faire aussi c'est de tester avec différentes versions de drivers JDBC (Oracle 8i, 9i, 10g)

    Matthieu

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/08/2013, 18h45
  2. Java web start et jdbc oracle
    Par saniel83 dans le forum JWS
    Réponses: 4
    Dernier message: 05/08/2010, 21h04
  3. JAVA et JDBC oracle
    Par jokers009 dans le forum JDBC
    Réponses: 1
    Dernier message: 09/05/2009, 12h59
  4. connexion jdbc à oracle a travers Java
    Par dzwael dans le forum JDBC
    Réponses: 3
    Dernier message: 03/10/2007, 16h38
  5. [JDBC] [Oracle] Erreur : End of TNS data channel
    Par loicmillion dans le forum JDBC
    Réponses: 2
    Dernier message: 01/02/2005, 14h27

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