Domanda

Quando eseguo Build IOS5.0 o meno quindi la risposta SQLite corregge e recupera i dati che funzionano bene ma quando viene eseguito su iOS6.0 Sto cercando di recuperare i dati dal database My.SQlite, ma non sta eseguendo il mio caso se custodia.Entra sempre a condizione.Quale cosa sbagliata sto facendo?Non sono in grado di eseguire il mio caso se custodia i.e. if(sqlite3_prepare_v2(database, sqlQuerry, -1, &querryStatement, NULL)==SQLITE_OK).

Per riferimento Controllare questo codice.

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
    {

    }
.

su IOS6.0 Stampa del registro

 sqlite3_prepare_v2 = 1 SQLITE_OK 0   
 sqlite3_step = 21 SQLITE_ROW 100 
.

su IOS5.0 Stampa del registro

sqlite3_prepare_v2 = 0 SQLITE_OK 0  
sqlite3_step = 100 SQLITE_ROW 100 
.

È stato utile?

Soluzione

Posizionati in alternativa questo, quindi possiamo vedere l'errore che è risultante ..

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));
}
.

Altri suggerimenti

Prova a eliminare la tua app dal dispositivo (o simulatore), quindi pulire e creare

Non sono sicuro al 100% ma per quanto riguarda questo: Null è un Void * , Nil è un ID

Quindi se puoi modificare questo:

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

whit questo:

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

Cambio solo NIL con NULL.Ancora una volta non sicuro al 100% ma solo questo vedo nel tuo codice.Uso sempre NULL :)

Spero che questo aiuto ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top