Как узнать, успешно ли выполнен запрос FMDB - PullRequest
1 голос
/ 08 октября 2019

Я хочу получить любой ответ (например, знаю, был ли мой запрос успешным или неудачным) следующего запроса:

let rs = try self.database.executeQuery
    ("insert into Practice(old, number) values (?, ?)", 
     values: [old, number])

, но только я получаю

<FMResultSet: 0x60000289ab20>

, покая пытаюсь повторить коллекцию, никогда не входя в цикл while

while rs.next(){
    print("never")
}

, что неправильно в моем коде, поэтому я получаю чистую коллекцию

1 Ответ

0 голосов
/ 08 октября 2019

Вы хотите использовать executeUpdate при выполнении запроса, обновляющего вашу базу данных, такого как оператор INSERT, UPDATE или DELETE SQL:

let sql = "INSERT INTO practice(old, number) VALUES (?, ?)"
try database.executeUpdate(sql, values: [old, number])

Само собой разумеется,Вы знаете, был ли INSERT успешным или нет, является ли он выдачей ошибки.

Но executeQuery используется только в том случае, если SQL возвращает строки (например, оператор SELECT).


В случае UPDATE и DELETE ошибка выдается, только если во время обновления произошла ошибка. Но (особенно если у вас есть предложение WHERE), вы также можете проверить database.changes, чтобы увидеть, сколько строк было затронуто.

...