jimmysnn_17 Δημοσ. 30 Μαρτίου 2013 Δημοσ. 30 Μαρτίου 2013 Καλησπέρα, Τρέχω αυτό το ερώτημα σε Sql command SET @r1 = GeomFromText('Polygon((1 1, 5 1,5 5,1 5,0 1 1))'); SET @r2 = GeomFromText('Polygon((1 1,5 1,5 5,1 5,1 1))'); select MBROVERLAPS(@r1,@r2); ¨και βγάζει αποτέλεσμα χωρίς κανένα πρόβλημα. ΄Το παραπάνω ερώτημα σε java: και βγάζει error: query = "SET @r1 = GeomFromText(\'Polygon((1 1, 5 1,5 5,1 5,1 1))\');\n" + "SET @r2 = GeomFromText(\'Polygon((1 1,5 1,5 5,1 5,1 1))\');\n" + "select MBROVERLAPS(@r1,@r2);" ; com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @r2 = GeomFromText('Polygon((1 1,5 1,5 5,1 5,1 1))');select MBROVERLAPS(@r1' at line 2 Ο κώδικας μου public String getoverlap(Rectangle recA, Rectangle recB){ String result = "-1"; String query; query = "SET @r1 = GeomFromText(\'Polygon((1 1, 5 1,5 5,1 5,1 1))\');\n" + "SET @r2 = GeomFromText(\'Polygon((1 1,5 1,5 5,1 5,1 1))\');\n" + "select MBROVERLAPS(@r1,@r2);" ; System.out.println("query--:\n "+query); try { this.statement = this.connection.createStatement(); ResultSet rs = this.statement.executeQuery(query); System.out.println("kkk:" +rs.toString()); if(rs!=null){ result = rs.getString("MBROVERLAPS(@r1,@r2)"); } else{ System.out.println("Debug: lathos sthn getoverlap"); } statement.close(); } catch (SQLException ex) { System.out.println("debug: sqlEcxeption"); Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex); } return result; } Που είναι ακριβώς το λαθος στο παραπάνω ερώτημα?Ευχαριστώ
jimmysnn_17 Δημοσ. 31 Μαρτίου 2013 Μέλος Δημοσ. 31 Μαρτίου 2013 Το έλυσα το προβληματάκι που υπήρχε!!! To λάθος ήταν ότι εκτελουσα 3 εντολές sql σε ένα query... Αυτό γίνετε στο sql command αλλά όχι στη java... query = "SET @r1 = GeomFromText(\'Polygon((1 1, 5 1,5 5,1 5,1 1))\');\n" +"SET @r2 = GeomFromText(\'Polygon((1 1,5 1,5 5,1 5,1 1))\');\n" +"select MBROVERLAPS(@r1,@r2);" ; Χρειάζεται να εκτελούντε μία μία οι εντολές στο statement: statement = connection.createStatement(); statement.executeQuery("SET @r1 = GeomFromText(\'Polygon((1 1, 5 1,5 5,1 5,1 1))\')"; statement.executeQuery("SET @r2 = GeomFromText(\'Polygon((1 1,5 1,5 5,1 5,1 1))\')"); ResultSet rs = statement.executeQuery("SELECT MBROVERLAPS(@r1,@r2)"); System.out.println(rs.toString());
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα