El problema con su código es no que pasa los argumentos como Integer (no lo hace), pero que los argumentos no se reconocen como TEXT
literales porque no están encerrados entre comillas simples, por lo que SQLite cree que son nombres de columna.
La forma recomendada de pasar los parámetros a rawQuery()
es esto:
fun userPresent (user: String, pass: String): Boolean {
val db = writableDatabase
val query = "select * from $TABLE_NAME where username = ? and password = ?"
val cursor = db.rawQuery(query, arrayOf(user, pass))
val result = cursor.count > 0
cursor.close()
db.close()
return result
}
Los marcadores de posición ?
tomará sus valores de los elementos correspondientes de la matriz pasados como segundo argumento de rawQuery()
y no necesita concatenar las comillas simples para evitar el riesgo de inyección de sql.
Después de eso y antes de la declaración de retorno, debe cerrar ambos Cursor
y el db
objeto.