Swift Sqlite вставляет ноль в столбец BLOB-объектов - PullRequest
0 голосов
/ 27 сентября 2018

Я использовал следующий запрос для создания таблицы в sqlite db

let createTableQuery = """
CREATE TABLE Image(
Id INTEGER PRIMARY KEY AUTOINCREMENT,  image BLOB);
"""

Использовал следующий метод для вставки данных в таблицу изображений

let insertStatementString = "INSERT INTO Image (image) VALUES (?);"

func insert() {
        var insertStatement: OpaquePointer? = nil
        if sqlite3_prepare_v2(db, insertStatementString, -1, &insertStatement, nil) == SQLITE_OK {
            let image = UIImage.init(named: "item1.png")
            let data = UIImagePNGRepresentation(image!)! as NSData
            sqlite3_bind_blob(insertStatement, 2, data.bytes, Int32(data.length), SQLITE_TRANSIENT)

            if sqlite3_step(insertStatement) == SQLITE_DONE {
                print("Successfully inserted row.")
            } else {
                print("Could not insert row.")
            }
        } else {
            print("INSERT statement could not be prepared.")
        }
        sqlite3_finalize(insertStatement)
    }

Когда я вызываю этот метод, он печатает"Успешно вставленный ряд".Но когда я открываю БД с помощью DB Browser для Sqlite, столбец изображения имеет значение NULL.

Может кто-нибудь помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...