Estoy tratando de eliminar datos de una tabla de java con JDBC. En primer lugar yo soy de contar el número de filas y de asegurarse de que la tabla no está vacía y, a continuación, el Truncamiento de los datos.

Este es el código que estoy utilizando

  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");
   }

De 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)

El error está en el Truncate Table dbo.Enlace.

Estoy haciendo esto de la manera correcta?

Alguien me puede ayudar con esto por favor.

Gracias.

OriginalEl autor Huzaifa | 2013-05-02

1 Comentario

  1. 21

    No uso executeQuery para ejecutar una instrucción DDL; uso executeUpdate.

    A la cita de los vinculados Javadocs:

    Ejecuta la sentencia SQL dada, que puede ser un INSERT, UPDATE, o
    Instrucción DELETE o una instrucción SQL que devuelve nada, como un
    DDL de SQL declaración.

    (el énfasis es mío)

    Y una instrucción truncate table es una instrucción DDL.

    El select no es el problema. El OP establece que: «El error está en el Truncate Table dbo.Enlace.».
    Wow. Un millón de gracias. Yo no veo eso.
    Comentario anterior era válido antes de actualizar la respuesta. Voy a borrar ese comentario.
    Gracias por la publicación de un muy útil respuesta para un principiante como yo. Tengo un simplequestion releted a mi código de java. Aquí está la pregunta que yo pregunté en stakoverflow – lo ( com.microsoft.sqlserver.jdbc.SQLServerException:El índice 0 está fuera de rango )excepción medios. Yo sólo quería saber que es hay alguna manera de que me puede conseguir el número de columna automáticamente de la base de datos en lugar de poner los números de la columna manualmente en mi primer bucle for

    OriginalEl autor rgettman

Dejar respuesta

Please enter your comment!
Please enter your name here