Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème Java / sql (access)

problème avec la fonction sum

    20 mai 2011 à 14:34:37

    Bonjour à tous ;)

    je suis actuellement en stage, et je suis en train de faire une interface sur une base de données access.

    La connection entre java et access marche très bien, j'ai même pu afficher plusieur requète sur l'interface, mais lorsque j'ai voulut faire des requète contenant des "sum()" j'obtient une erreur. après une petite analyse, j'ai découvert que la requète s'était effectué comme si il n'y avait pas de somme (j'obtient toutes les lignes dans la tables où je veut faire ma somme en fonctions du paramètre de recherche).
    voici un exemple de requète :
    SELECT Sum(T_PALETTES.Valeur) AS SommeDeValeur
    FROM T_RAYONS INNER JOIN T_PALETTES ON T_RAYONS.RAYON = T_PALETTES.RAYON
    GROUP BY T_PALETTES.ETAT
    HAVING (((T_PALETTES.ETAT)='En Stock'));
    

    de plus, quand je teste cette même requète dans Access, j'obtient bien le résultat souhaiter.
    J'espère que l'un de vous pourras m'aider, car je ne comprend pas du tous ce qu'il veut ^^
    Archein.

    PS : voici le message d'erreur (pour ce que sa vaut ^^') :
    Exceptionjava.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] État de curseur non valide
    
    • Partager sur Facebook
    • Partager sur Twitter
      20 mai 2011 à 14:39:14

      Pourquoi tu mets T_PALETTES.ETAT='En Stock' (avec plein de paernthèses qui servent à rien) dan s un HAVING ?? C'est dans un WHERE.
      • Partager sur Facebook
      • Partager sur Twitter
        20 mai 2011 à 14:45:03

        merci pour ta réponse.
        je doit avoué que ma mémoires en sql remonte un peu a loin, donc j'ai joué le fénéant, je faisait d'abord la foction sql sur access, et je faisait un copier coller !

        sinon, malheureusement cela ne change rien du tous, j'ai toujours la même erreur :s
        • Partager sur Facebook
        • Partager sur Twitter
          20 mai 2011 à 14:50:05

          T'as bien fais un .next() sur ton ResultSet ??
          • Partager sur Facebook
          • Partager sur Twitter
            20 mai 2011 à 14:56:09

            j'aurais du mêttre mon code dès le début, donc le voici :
            String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=Y:\\Zpoa\\Applicatifs\\Sebastien\\GSEDON.mdb";
            			Connection conect = null;
            			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            			conect = DriverManager.getConnection(url, "", "");
            			Statement st = conect.createStatement(
            					ResultSet.TYPE_SCROLL_INSENSITIVE,
            					ResultSet.CONCUR_READ_ONLY);
            			ResultSet resultatDest = st.executeQuery("SELECT Sum(T_PALETTES.Valeur) AS SommeDeValeur"
            							+ " FROM T_RAYONS INNER JOIN T_PALETTES ON T_RAYONS.RAYON = T_PALETTES.RAYON"
            							+ " WHERE T_PALETTES.ETAT='En Stock'"
            							+ " GROUP BY T_PALETTES.ETAT;");
            			ResultSetMetaData meta = resultatDest.getMetaData();
            			resultatDest.last();
            			data = 0;
            			resultatDest.last();
            
            			System.out.println(resultatDest.getRow()+" ligne ");
            			j++;
            			resultatDest.beforeFirst();
            			while (resultatDest.next()) {
            				for (int i = 1; i <= meta.getColumnCount(); i++) {
            					data += resultatDest.getInt(i);
            				}
            				j++;
            			}
            			resultatDest.close();
            			requete.close();
            


            donc ici il y a tous le code contenue dans le try ;)
            • Partager sur Facebook
            • Partager sur Twitter
              23 mai 2011 à 10:51:10

              Personne n'a d'idées ?? :'(
              • Partager sur Facebook
              • Partager sur Twitter
                26 mai 2011 à 9:23:13

                pour être un peu plus exacte dans mon problème, j'obtient, après execution de la requète, 6985lignes(le nombre de lignes contenues dans ma table), dans la première lignes, j'obtient le resutlat de la somme, mais dans les autres ligne, j'ai rien, plus précisément, les lignes suivantes n'existe pas (alors que si j'affiche le nombres de lignes, j'obtient les 6985 lignes).
                • Partager sur Facebook
                • Partager sur Twitter

                problème Java / sql (access)

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown