The statement did not return a result set. Java Error
java, jdbc, resultset, truncate
Solution
Don't use `executeQuery` to execute a DDL statement; use `executeUpdate`.
To quote from the linked Javadocs:
Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement.
(emphasis mine)
And a truncate table statement is a DDL statement.
Problem
I am trying to delete data from a table from java using JDBC. First I am counting the no of rows and making sure the table is not empty and then Truncating the data. Here is the code I am using ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection con = DriverManager.getConnection("jdbc:sqlserver://m-i:1433;databaseName=Tes", "sa", "Password"); Statement cnnt= con.createStatement(); Statement del1 = con.createStatement(); ResultSet rs = cnnt.executeQuery("Select count(lea) AS cnt from dbo.Link"); int count= 0; if(rs.next()) { count = rs.getInt("cnt"); } System.out.println(count); if(count != 0) { del1.executeQuery("Truncate Table dbo.Link"); } else { System.out.println("Table is already empty"); } ``` Error: ``` Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190) at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:800) at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616) ``` The error is at the Truncate Table dbo.Link. Am I doing this the right way? Can someone help me with this please. Thanks.