Невозможно извлечь данные из базы данных SQLite IOS6.0

StackOverflow https://stackoverflow.com//questions/12650823

Вопрос

Когда я запускаю Build iOS5.0 или менее, а меньше, а меньше, а меньше, а именно, то SQLite Response правильно и извлеките данные о его работе, но при запуске на iOS6.0 я пытаюсь получить данные из базы данных my.sqlite, но он не выполняет мой случай.Это всегда входит в остальное состояние.Что не то что я делаю?Я не могу выполнить мой случай I.e. if(sqlite3_prepare_v2(database, sqlQuerry, -1, &querryStatement, NULL)==SQLITE_OK).

для справки Проверьте этот код.

NSLog(@"sqlite3_prepare_v2 = %d SQLITE_OK %d ",sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil),SQLITE_OK);

    if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
    {

        NSLog(@"sqlite3_step = %d SQLITE_ROW %d ",sqlite3_step(compiledStatement),SQLITE_ROW);
        while (sqlite3_step(compiledStatement)==SQLITE_ROW)
        {           if(sqlite3_column_text(compiledStatement, 2) != nil)
                modelObj.Name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];

        }
    }
    else
    {

    }
.

на журнале iOS6.0 печать

 sqlite3_prepare_v2 = 1 SQLITE_OK 0   
 sqlite3_step = 21 SQLITE_ROW 100 
.

на журнале iOS5.0 печати

sqlite3_prepare_v2 = 0 SQLITE_OK 0  
sqlite3_step = 100 SQLITE_ROW 100 
.

Это было полезно?

Решение

Разместить в остальном это, поэтому мы можем видеть ошибку, которая в результате которого ..

if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
{

    NSLog(@"sqlite3_step = %d SQLITE_ROW %d ",sqlite3_step(compiledStatement),SQLITE_ROW);
    while (sqlite3_step(compiledStatement)==SQLITE_ROW)
    {           if(sqlite3_column_text(compiledStatement, 2) != nil)
        modelObj.Name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];

    }
}
else{
    //error
    NSLog(@"Failed to open database. Error: %s",sqlite3_errmsg(database));
}
.

Другие советы

Попробуйте удалить свое приложение с вашего устройства (или симулятора), затем очистить и построить

Я не на 100% уверен, но относительно этого: NULL является Void * , nil -

Так что, если вы можете изменить это:

if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
.

Ничьей это:

if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, NULL)==SQLITE_OK)
.

Я просто поменяю ноль с нулевым.Опять не на 100% конечно, но только это я вижу в вашем коде.Я всегда использую NULL :)

Надеюсь, эта помощь ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top