2014-05-09 2 views
0

J'ai cette requête ci-dessous. Je l'ai vérifié dans ms access et ça marche bien. Mais quand je l'ajoute à mon programme, une "erreur de syntaxe dans la clause FROM." apparaît. Des suggestions sur la façon de résoudre ce problème?Erreur dans le "FROM CLAUSE"

String query ="TRANSFORM COUNT(a.present)\n" + 
          "SELECT e.ID,e.firstName,e.lastName,e.position,e.rate\n" + 
          "FROM employees e \n" + 
          "INNER JOIN attendance a \n" + 
          "ON e.ID = a.empID \n" + 
          "GROUP BY e.ID,e.firstName,e.lastName,e.position,e.rate \n" + 
          "PIVOT a.dateAttended"; 

Ceci est la méthode complète à laquelle appartient la requête. La méthode connectToDB est utilisée pour insérer le jeu de résultats dans un jtable. Les jtables peuvent-ils insérer des requêtes pivot?

private void attendanceView() throws ClassNotFoundException{ 
     try{ 
      String query ="TRANSFORM COUNT(a.present) " + 
          "SELECT e.ID,e.firstName,e.lastName,e.position,e.rate " + 
          "FROM employees e " + 
          "INNER JOIN attendance a " + 
          "ON e.ID = a.empID " + 
          "GROUP BY e.ID,e.firstName,e.lastName,e.position,e.rate " + 
          "PIVOT a.dateAttended"; 
      Object[][] result = connectToDB(query); 
      System.out.print(result); 
      monthlyAttendanceTable.setModel(new javax.swing.table.DefaultTableModel(
        result, new String [] {"Employee ID","First Name","Last Name", "Position", "Rate","",""} 
      ) 
      { 
       Class[] types = new Class [] { 
        java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class,java.lang.Integer.class,java.lang.Integer.class,java.lang.String.class 
       }; 
       boolean[] canEdit = new boolean [] { 
        false, false, false, false, false, false, false, false, false,false 
       }; 

       public Class getColumnClass(int columnIndex) { 
        return types [columnIndex]; 
       } 

       public boolean isCellEditable(int rowIndex, int columnIndex) { 

        return canEdit [columnIndex]; 
       } 
      }); 
     }catch (ClassNotFoundException ex) { 
       Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex); 
       ex.printStackTrace(); 
      } 
    } 
+2

@Reimeus: \ Nn'est pas considéré comme un espace? –

+0

J'ai ajouté une nouvelle ligne dans ma chaîne de requête pour faciliter la lecture de mon code. Je vais essayer votre suggestion. – rocky

+0

Je ne connais pas ms-access, mais peut-être qu'il nécessite windows newlines ('\ r \ n')? Java traite '\ n' comme le caractère LF exclusivement; il ne l'étend jamais au concept de nouvelle ligne de l'OS. – yshavit

Répondre

-1

Essayez ceci: questions

Spaces beaucoup tout en spilting la même requête sur plusieurs lignes.

String query ="TRANSFORM COUNT(a.present) " + 
          "SELECT e.ID,e.firstName,e.lastName,e.position,e.rate " + 
          "FROM employees e " + 
          "INNER JOIN attendance a " + 
          "ON e.ID = a.empID " + 
          "GROUP BY e.ID,e.firstName,e.lastName,e.position,e.rate " + 
          "PIVOT a.dateAttended"; 
+0

cela ne fonctionne pas. – rocky

+0

Plus de détails sont nécessaires pour que d'autres utilisateurs puissent vous aider. En outre, vous pourriez envisager de terminer vos questions précédentes et d'attribuer des réponses (case à cocher à gauche). [lien] http://stackoverflow.com/questions/23568914/error-in-the-from-clause [/ link] [lien] http://stackoverflow.com/questions/23552345/checking-if-a- jbutton-is-clicked-dans-un autre fichier java [/ link] – phaedra

Questions connexes