Как получить данные с помощью оператора запроса в Swift? - PullRequest
0 голосов
/ 18 сентября 2018

Я хочу получить данные из моей таблицы с именем cache_image, но я не уверен, как это сделать, и здесь я сталкиваюсь с ошибкой.

func checkCachedImages() ->Bool{
    database?.open()
    var count = Int()
    for i in images{
        do{
            if let value = database?.executeQuery("SELECT DOWNLOAD_URL FROM CACHED_IMAGE WHERE IMAGE_NAME = ?", withArgumentsIn: [i]){
                while value.next(){
                    print(value.string(forColumn: "IMAGE_NAME"))
                    print(value.string(forColumn: "DOWNLOAD_URL"))
                    count += 1
                    print(count)
                }
            }
        }catch {
            print(error)
        }
    }
    database?.close()
    if count == images.count{
        print("The count is \(count)")
        return true
    }

    return false
}

У меня есть таблица с именем cached_image и два столбца с именами image_name и download_url, но когда я пытаюсь получить к ней доступ, используя

print(value.string(forColumn: "IMAGE_NAME")

отображается предупреждение:

Не удалось найти image_name и для столбца "download_url" он показывает "Необязательно (" ")"

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 18 сентября 2018

Вы не можете прочитать image_name из результата, так как он не является частью предложения SELECT, но он вам не нужен, поскольку вы можете получить его из i

var numberOfRows = 0
var urls: [String] = ()
print("Image name: \(i)")
if let result = try database?.executeQuery("SELECT download_url FROM CACHED_IMAGE WHERE IMAGE_NAME = ?", values: [i]) {
    while result.next() {
        numberOfRows += 1
        let url = result.stringForColumnIndex(0)
        urls.append(url)
        print("\(url), \(i)")
    }
}
print(numberOfRows)
...