Swift 5 SQLite问题-突然“无法打开数据库”

时间:2020-03-06 18:23:05

标签: ios swift sqlite

我正在使用Xcode开发一个iOS应用,并且SQLite用于存储数据。

存在与SQLite相关的问题,当应用程序将数千条记录插入数据库时​​,例外情况为“无法打开数据库” /“无法打开文件”。

我的应用程序的功能之一是下载包含约1440条记录的JSON(一条记录是带有时间戳的数字,例如{timestamp:'00:12',value:'29'},然后插入这些记录进入SQLite。我注意到,如果我尝试下载大约3〜4个JSON,则会出现该异常,并且应用程序将崩溃...

SQLite是否有任何限制?

有插入数据的代码:

//INSERT Statement
func insert(_ tableName :String, rowInfo :[String:String]) -> Bool {
    var statement :OpaquePointer? = nil
    let sql = "insert into \(tableName) " + "(\(rowInfo.keys.joined(separator: ","))) " + "values (\(rowInfo.values.joined(separator: ",")))"
    if sqlite3_prepare_v2(self.db, sql.cString(using: String.Encoding.utf8), -1, &statement, nil) == SQLITE_OK {
        if sqlite3_step(statement) == SQLITE_DONE {
            return true
        }
        sqlite3_finalize(statement)
    }
    return false
}

1 个答案:

答案 0 :(得分:-1)

执行操作时必须打开数据库;完成数据库连接后,您有责任关闭数据库。

尝试添加

sqlite3_open(db)

在函数启动时调用。

执行以下操作后关闭数据库(在返回函数之前):

sqlite3_close(db)
相关问题