我知道我们不能将plist或其他缓存文件放在我们项目的根目录中。
但是如果是.db
file,是否可以将其放在我们项目的根目录中,让我们table
在db
文件中插入或删除?
因为我看到一个演示文件放在根目录中,所以可以正常工作,但是我在项目中使用了它,无法向其中插入数据。
我调用的此方法返回4
,有时是2
:
// Private method which handles the actual execution of an SQL statement
private func execute(stmt:OpaquePointer, sql:String)->CInt {
// Step
var result = sqlite3_step(stmt)
if result != SQLITE_OK && result != SQLITE_DONE {
sqlite3_finalize(stmt)
if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
let msg = "SQLiteDB - failed to execute SQL: \(sql), Error: \(error)"
NSLog(msg)
}
return 0
}
// Is this an insert
let upp = sql.uppercased()
if upp.hasPrefix("INSERT ") {
// Known limitations: http://www.sqlite.org/c3ref/last_insert_rowid.html
let rid = sqlite3_last_insert_rowid(self.db)
result = CInt(rid)
} else if upp.hasPrefix("DELETE") || upp.hasPrefix("UPDATE") {
var cnt = sqlite3_changes(self.db)
if cnt == 0 {
cnt += 1
}
result = CInt(cnt)
} else {
result = 1
}
// Finalize
sqlite3_finalize(stmt)
return result
}
但是我使用SQLPro for SQLite
工具查看该表(由该工具创建),该表未插入任何记录。
因此,如果我们可以将db
文件放在根目录中,那么让我们在文件中插入或删除数据db
?
仅当行位于文档目录中时,您才能插入,更新或删除行(从而修改db文件)
查看其他答案,以发现如何在应用启动时移动.db文件
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句