我正在使用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
}
答案 0 :(得分:-1)
执行操作时必须打开数据库;完成数据库连接后,您有责任关闭数据库。
尝试添加
sqlite3_open(db)
在函数启动时调用。
执行以下操作后关闭数据库(在返回函数之前):
sqlite3_close(db)