У меня есть небольшая проблема с реализацией SQLite3 в Swift, не обновляя поле баланса.class User {
var id: Int
var uid: String
var balance: Double
var password: String
var address: String
init(id: Int, uid: String, balance: Double, password: String, address: String) {
self.id = id
self.uid = uid
self.balance = balance
self.password = password
self.address = address
}
}
< /code>
Он создается без проблем.func insertUser(id: Int, uid: String, balance: Double, password: String) -> Bool{
let users = getAllUsers()
// Check user email is exist in User table or not
for user in users{
if user.id == id {
return false
}
}
let insertStatementString = "INSERT INTO User (id, uid, balance, password, address) VALUES (?, ?, ?, ?, ?);"
var insertStatement: OpaquePointer? = nil
if sqlite3_prepare_v2(db, insertStatementString, -1, &insertStatement, nil) == SQLITE_OK {
sqlite3_bind_int(insertStatement, 1, Int32(id))
sqlite3_bind_text(insertStatement, 2, (uid as NSString).utf8String, -1, nil)
sqlite3_bind_double(insertStatement, 3, Double(balance))
sqlite3_bind_text(insertStatement, 4, (password as NSString).utf8String, -1, nil)
sqlite3_bind_text(insertStatement, 5, "", -1, nil) // assign empty value to address
if sqlite3_step(insertStatement) == SQLITE_DONE {
print("User is created successfully.")
sqlite3_finalize(insertStatement)
return true
} else {
print("Could not add.")
return false
}
} else {
print("INSERT statement is failed.")
return false
}
}
< /code>
До этого момента все работает, как и ожидалось. Все поля установлены надлежащим образом. < /P>
Я пытаюсь обновить баланс с помощью следующего кода: < /p>
// Update Earnings on User table
func updateEarnings(id: Int, balance: Double) -> Bool {
let updateStatementString = "UPDATE User set balance=? where id=?;"
var updateStatement: OpaquePointer? = nil
if sqlite3_prepare_v2(db,updateStatementString, -1, &updateStatement, nil) == SQLITE_OK {
sqlite3_bind_double(updateStatement, 2, Double(balance))
if sqlite3_step(updateStatement) == SQLITE_DONE {
print("Earnings Updated Successfully.")
sqlite3_finalize(updateStatement)
return true
} else {
print("Could not update.")
return false
}
} else {
print("UPDATE statement is failed.")
return false
}
}
< /code>
Я подтвердил, что это и баланс имеют соответствующие значения. Он возвращает истину, но баланс никогда не обновляется со значением.
Любые предложения будут оценены.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... -no-errors
SQLite не обновляется, несмотря на возвращение ошибок ⇐ IOS
Программируем под IOS
-
Anonymous
1746245867
Anonymous
У меня есть небольшая проблема с реализацией SQLite3 в Swift, не обновляя поле баланса.class User {
var id: Int
var uid: String
var balance: Double
var password: String
var address: String
init(id: Int, uid: String, balance: Double, password: String, address: String) {
self.id = id
self.uid = uid
self.balance = balance
self.password = password
self.address = address
}
}
< /code>
Он создается без проблем.func insertUser(id: Int, uid: String, balance: Double, password: String) -> Bool{
let users = getAllUsers()
// Check user email is exist in User table or not
for user in users{
if user.id == id {
return false
}
}
let insertStatementString = "INSERT INTO User (id, uid, balance, password, address) VALUES (?, ?, ?, ?, ?);"
var insertStatement: OpaquePointer? = nil
if sqlite3_prepare_v2(db, insertStatementString, -1, &insertStatement, nil) == SQLITE_OK {
sqlite3_bind_int(insertStatement, 1, Int32(id))
sqlite3_bind_text(insertStatement, 2, (uid as NSString).utf8String, -1, nil)
sqlite3_bind_double(insertStatement, 3, Double(balance))
sqlite3_bind_text(insertStatement, 4, (password as NSString).utf8String, -1, nil)
sqlite3_bind_text(insertStatement, 5, "", -1, nil) // assign empty value to address
if sqlite3_step(insertStatement) == SQLITE_DONE {
print("User is created successfully.")
sqlite3_finalize(insertStatement)
return true
} else {
print("Could not add.")
return false
}
} else {
print("INSERT statement is failed.")
return false
}
}
< /code>
До этого момента все работает, как и ожидалось. Все поля установлены надлежащим образом. < /P>
Я пытаюсь обновить баланс с помощью следующего кода: < /p>
// Update Earnings on User table
func updateEarnings(id: Int, balance: Double) -> Bool {
let updateStatementString = "UPDATE User set balance=? where id=?;"
var updateStatement: OpaquePointer? = nil
if sqlite3_prepare_v2(db,updateStatementString, -1, &updateStatement, nil) == SQLITE_OK {
sqlite3_bind_double(updateStatement, 2, Double(balance))
if sqlite3_step(updateStatement) == SQLITE_DONE {
print("Earnings Updated Successfully.")
sqlite3_finalize(updateStatement)
return true
} else {
print("Could not update.")
return false
}
} else {
print("UPDATE statement is failed.")
return false
}
}
< /code>
Я подтвердил, что это и баланс имеют соответствующие значения. Он возвращает истину, но баланс никогда не обновляется со значением.
Любые предложения будут оценены.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79593522/sqlite-not-updating-despite-returning-no-errors[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия