Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Choke1 en 8 Agosto 2015, 20:38



Título: Consulta SQL
Publicado por: Choke1 en 8 Agosto 2015, 20:38
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


Título: Re: Consulta SQL
Publicado por: Baal_30 en 9 Agosto 2015, 13:02
Pon la consulta si puedes...

Edito: Estoy empanao xD


Título: Re: Consulta SQL
Publicado por: Choke1 en 10 Agosto 2015, 22:06
Esta es la consulta: "delete from Altabd where num_socio="+id;

id se lo paso por parametro


Título: Re: Consulta SQL
Publicado por: Baal_30 en 11 Agosto 2015, 16:39
Umm a lo mejor es que después del id no cierras el punto y coma ¿?


Título: Re: Consulta SQL
Publicado por: DarK_FirefoX en 11 Agosto 2015, 16:48
¿Desde dónde estás haciendo la consulta para acceder a la base de datos? o sea ¿Desde que plataforma?

Salu2s


Título: Re: Consulta SQL
Publicado por: Choke1 en 11 Agosto 2015, 16:51
Desde NetBeans con Java


Título: Re: Consulta SQL
Publicado por: DarK_FirefoX en 11 Agosto 2015, 17:18
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:

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

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

Traduzco:
Citar
Cuando 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


Título: Re: Consulta SQL
Publicado por: Choke1 en 13 Agosto 2015, 13:33
Muchas gracias por tu ayuda, me ha servido de mucho!