ArisGuimera / EjerciciosLibroAndroid

Repositorio con todos los ejercicios prácticos de mi libro "Desarrollo de aplicaciones Android en Kotlin, casos prácticos".
24 stars 4 forks source link

Duda ejercicio 13.3 del libro #5

Open Rai1502 opened 4 years ago

Rai1502 commented 4 years ago

Hola amigo, nuevamente con una duda en el apartado de las bases de datos sqlite con Room en el 13.3

Tú tienes esta parte de codigo en el insert y se generaba un error con arg0 y por ende no corria la app image

Leyendo un poco en la documentación oficial veía el ejemplo que pasaba arg0 en el argumento de la funcion, lo hice de este modo y funcionó ¿a que se debe?. image

me podrías explicar un poco esa parte y como es que funciona ya que esta declaración de poner @Query con su respectiva instrucción y abajo una función, me causa conflicto su funcionamiento.

por ultimo, note que la función de actualizar, actualiza todos los datos menos el DNI, ese no se deja cambiar ¿a que se debe?

Espero no sean algo enredadas las preguntas y te agradezco de antemano tu tiempo prestado para poder responderme

ArisGuimera commented 3 years ago

Buenas, la primera pregunta no la entiendo, podrías explicarlo? Porque veo lo mismo en tu pregunta y en la imagen.

Cuando pones @Query lo que haces es una consulta SQL ( https://www.campusmvp.es/recursos/post/Fundamentos-de-SQL-Como-realizar-consultas-simples-con-SELECT.aspx )

Tendría que ver el código exacto del update porque pueden haber muchas causas por la cual no actualizas. Por ejemplo si pones que el dni es primary key, no se podrá actualizar ese campo.

Rai1502 commented 3 years ago

Referente al update si es por eso ya que el dni es la llave primaria....

aa mi pregunta era que el parámetro arg0 se debe pasar también en la función del @query, y en el código de ejemplo del libro pasabas dni.... solo quería saber si al poner

@query ("Select * from tabla dni lije :arg0) //la funcion.... debe recibir como parametro arg0 en ves de dni, y esta funcion en automatico se asocia a la sentencia sql?

Espero que si haya sido mas clara