Я получаю эту ошибку: нет такой таблицы и хотел бы знать, где хранится sqlite db - PullRequest
0 голосов
/ 14 февраля 2020

Похоже, файл БД хранится где-то еще. ранее я заметил, что в моем случае файлы БД хранятся, как показано ниже. (Я изменил номера)

/ Пользователи / мое имя / Библиотека / Разработчик / CoreSimulator / Устройства / 111-111-111данные / Контейнеры / Данные / Приложение / 12341231231 / Документы / dbname.db

и я go в Документах, я не вижу файл БД после первого запуска симулятора. но когда я запускаю симулятор во второй раз, в консоли он реализует .. NSLog ("файл БД существует") но все же я не вижу файл БД в пути документов. И когда я вставляю запрос, я получаю эту ошибку: нет такой таблицы: myTable.

Я хотел бы знать, где я ошибаюсь.

 {     
    super.viewDidLoad()

         var databasesPath:String?

 let dirPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)

               let docsDir = dirPaths[0] as String
              databasesPath = docsDir.appending("/ayoyoa.db")

        let filemgr = FileManager.default

             if !filemgr.fileExists(atPath: databasesPath!) {

                   let contactDB = FMDatabase(path: databasesPath)
                if contactDB.open() {
                       let sql_stmt = "CREATE TABLE IF NOT EXISTS myTable (ID INTEGER PRIMARY KEY AUTOINCREMENT, word TEXT, meaning TEXT, info TEXT)"
                       if !contactDB.executeStatements(sql_stmt) {
                           print("Error \(contactDB.lastErrorMessage())")
                    }
                    contactDB.close()
                    } else {
                     print("Error \(contactDB.lastErrorMessage())")
                   }
             } else {
                let contactDB = FMDatabase(path: databasesPath)
                         if contactDB.open() {
                NSLog("DB file exists")
                let querySQL = "SELECT * FROM myTable"
              let result: FMResultSet? = contactDB.executeQuery(querySQL, withArgumentsIn: [])
    while result?.next() == true {
        if let appendeddata = result?.string(forColumn:"word") {
        willbeshown.append(appendeddata)
                        }
                        }
        contactDB.close()
                }
                tableview.reloadData()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...