Kotlin / Android: android.database.sqlite.SQLiteException: нет такой таблицы: Table_xx (код 1 SQLITE_ERROR): при компиляции: выберите * из Table_xx - PullRequest
2 голосов
/ 05 апреля 2019

У меня проблема с доступом к моему столу, но невозможно понять, в чем проблема. Таблица хорошо существует в SQL select * from Table_xx .

Я не знаю, действительно ли сообщение об ошибке no only table действительно является проблемой отсутствия таблицы ...

class DBLocal(context: Context, name: String?, factory: SQLiteDatabase.CursorFactory?, version: Int) : SQLiteOpenHelper(context, DATABASE_NAME, factory, DATABASE_VERSION)
{

    override fun onCreate(db: SQLiteDatabase)
    {
        print(DATABASE_NAME)
    }

    override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int)
    {
    }
    fun methodToSelectData(strQuery: String)/*, completion: @escaping (_ result:*/
    {
         print("test")

        val list = ArrayList<String>()
        val db = this.readableDatabase


        val c = db.rawQuery(strQuery, null)

        if (c.moveToFirst()) {
            do {
                list.add(c.getString(c.getColumnIndexOrThrow("lng")))
            } while (c.moveToNext())
        }
        c.close()
        db.close()
    }

    fun methodToInsertUpdateDeleteData(strQuery: String)/*, completion: @escaping (_ result: Bool) -> Void)*/
    {

    }
    companion object {
        private val DATABASE_VERSION = 1
        private val DATABASE_NAME = "Local.db"
    }

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Лучше всего создать собственную базу данных и импортировать из активов: https://medium.com/@johann.pardanaud/ship-an-android-app-with-a-pre-populated-database-cd2b3aa3311f

1 голос
/ 05 апреля 2019

С SQLiteOpenHelper вам нужно написать код в переопределении onCreate(), чтобы выполнить SQL, который создает нужные вам таблицы.Ваша реализация просто печатает имя базы данных, оставляя вас с пустой базой данных и без таблиц.

После добавления туда SQL вы можете удалить приложение один раз, чтобы удалить старую пустую базу данных и снова запустить триггер onCreate().

...