Consulta SQL

Iniciado por Choke1, 8 Agosto 2015, 20:38 PM

0 Miembros y 1 Visitante están viendo este tema.

Choke1

Al realizar la consulta delete , me sale el siguiente error:

Mensaje:query does not return ResultSet
Estado:SQLITE_DONE
Codigo del error:101

Pero lo que pasa es que si elimina el dato, ¿como puedo arreglarlo para que no salga el error?

Gracias

Baal_30

#1
Pon la consulta si puedes...

Edito: Estoy empanao xD
«La suerte es el cuidado de los detalles». -Winston Churchill

Choke1

Esta es la consulta: "delete from Altabd where num_socio="+id;

id se lo paso por parametro

Baal_30

Umm a lo mejor es que después del id no cierras el punto y coma ¿?
«La suerte es el cuidado de los detalles». -Winston Churchill

DarK_FirefoX

¿Desde dónde estás haciendo la consulta para acceder a la base de datos? o sea ¿Desde que plataforma?

Salu2s

Choke1

Desde NetBeans con Java

DarK_FirefoX

#6
De acuerdo a

Cita de: https://www.sqlite.org/c3ref/c_abort.html#define SQLITE_DONE        101  /* sqlite3_step() has finished executing */

Cita de: https://www.sqlite.org/rescode.html
(101) SQLITE_DONE

The SQLITE_DONE result code indicates that an operation has completed. The SQLITE_DONE result code is most commonly seen as a return value from sqlite3_step() indicating that the SQL statement has run to completion. But SQLITE_DONE can also be returned by other multi-step interfaces such as sqlite3_backup_step().

La verdad no he trabajado con SQLITE desde Java, pero pregunto:

¿Cuando ejecutas la consulta le asignas eso a algo?

Pregunto ^^ por esto:

Cita de: Choke1 en  8 Agosto 2015, 20:38 PM
Mensaje:query does not return ResultSet

Lo que puedo deducir es que le estas asignando lo que devuelve la consulta a algo (ResultSet), pero la consulta es DELETE y supongo que no devuelva (ResultSet)

Espero mis comentarios te sirvan de algo.

Añado:

Leyendo un poquito más: http://stackoverflow.com/questions/7052196/sqlite-exception-insert-statement-does-not-return-a-statement

CitarWhen you are making a change and not asking for a result back, you need to call executeUpdate() instead of executeQuery()

Traduzco:
CitarCuando estás haciendo algun cambio y no esperas que se devuelva un resultado, debes llamar executeUpdate() en vez de executeQuery()

Ahora, te explico un poco:

executeQuery() --- Es utilizado generalmente para leer contenido de la base de datos. La salida estara en forma de ResultSet. Generalmente se utilizan las sentencias SELECT

executeUpdate() --- Es utilizado generalmente para alterar la base de datos. Generalmente se utilizan las sentencias DROP TABLE o DROP DATABASE, INSERT into TABLE, UPDATE TABLE, DELETE from TABLE. Importante saber que el resultado vendrá dado por un int el cual denota el numero de filas (rows) afectadas por la consulta.

Por último:

execute() --- Si no sabes que método utilizar para ejecutar las consultas, este método puede ser usado. Te retornará un valor boolean.

  • TRUE: Indica que el resultado es un ResultSet
  • FALSE: Indica que el resultado tiene el valor int denotando el numero de filas (rows) afectadas por la consulta

Espero esto te sirva.

Salu2s

Choke1

Muchas gracias por tu ayuda, me ha servido de mucho!