私はココアポッドの依存としてFMDBを使用しています。挿入、削除、および選択操作は正常に動作しますが、行を更新することはできません。ここでswiftを使用してFMDBで更新を実行できません3
は私のコードこの問題を検索する際
データベースとテーブルの作成
let filemgr = FileManager.default
let dirPaths = filemgr.urls(for: .documentDirectory,
in: .userDomainMask)
let databasePath = dirPaths[0].appendingPathComponent("database.sqlite").path
defaults.set(String(databasePath), forKey: "databasePath")
let dbObj = FMDatabase(path: defaults.value(forKey: "databasePath") as! String)
if dbObj == nil {
print("Error: \(dbObj?.lastErrorMessage())")
}
if (dbObj?.open())!
{
let sql_stmt = "CREATE TABLE IF NOT EXISTS TABLE_TICKET (ID INTEGER PRIMARY KEY AUTOINCREMENT, TICKET_SUBJECT TEXT, TICKET_DESCRIPTION TEXT, DEPARTMENT_ID TEXT, PRIORITY_ID TEXT NOT NULL, TYPE_ID TEXT NOT NULL, TICKET_ATTACHMENT TEXT, STAFF_NAME TEXT NOT NULL, TICKET_NO TEXT NOT NULL, TICKET_ID TEXT NOT NULL, TICKET_STATUS TEXT NOT NULL,TICKET_OFFLINE_FLAG TEXT NOT NULL,TICKET_DATE TEXT NOT NULL, TICKET_UPDATE_TIME TEXT)"
if !(dbObj?.executeStatements(sql_stmt))! {
print("Error: \(dbObj?.lastErrorMessage())")
}
dbObj?.close()
}
else
{
print("Error: \(dbObj?.lastErrorMessage())")
}
更新操作
if (dbObj?.open())!
{
let updatedTime = String(describing: json["response"]["CurrentDateTime"])
print(updatedTime)
let deleteSQL = "UPDATE TABLE_TICKET SET ticket_update_time = '\(updatedTime)' WHERE ticket_id ='\(self.currentTicketID!)'"
do {
try dbObj?.executeUpdate("UPDATE TABLE_TICKET SET ticket_update_time=? WHERE ticket_id=?", withArgumentsIn: [updatedTime, self.currentTicketID!])
}
catch {
print(error)
}
} else {
print("Error: \(dbObj?.lastErrorMessage())")
}
である私は、DBはにコピーされなければならないことがわかりました読み取り専用ではない特定の場所。私は間違った場所に保管していますか?
注:このコードの実行中にエラーは発生しませんでした。更新後の更新された列の値が空白になりました。