Возникла проблема при получении базы данных sqlite - PullRequest
0 голосов
/ 28 июня 2011

Я сталкиваюсь с проблемой при извлечении данных из базы данных sqlite .

Я пытаюсь вот так, но мои данные не получают:

+(void) getInitialDataToDisplay:(NSString *)dbPath
{
JourneyAppDelegate *appDelegate = (JourneyAppDelegate*)[[UIApplication sharedApplication]delegate];
if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK)
{
    const char *sql = "select JourneyID,JourneyName,LocationName,Description from UserJourney";
    sqlite3_stmt *selectStmt;
    if(sqlite3_prepare_v2(database, sql, -1, &selectStmt, NULL) == SQLITE_OK)
    {
        while (sqlite3_step(selectStmt) == SQLITE_ROW)
        {
            //NSInteger primaryKey = sqlite3_column_int(selectStmt, 0);
            NewJourney *journeyobj = [[NewJourney alloc]init]; 
/**/when my pointer come at this line it goes out of the scope My  journeyobj.journeyname ,journeyobj.journeylocation and journeyobj.journeydescription is not getting the value.**
            journeyobj.journeyname = [NSString stringWithUTF8String:(char*)sqlite3_column_text(selectStmt, 3)];
            journeyobj.journeylocation = [NSString stringWithUTF8String:(char*)sqlite3_column_text(selectStmt, 4)];
            journeyobj.journeydescription = [NSString stringWithUTF8String:(char*)sqlite3_column_text(selectStmt, 5)];
            journeyobj.isDirty = NO;

            [appDelegate.journeyList addObject:journeyobj];
            [journeyobj release];

        }
    }
}
else 
{
    sqlite3_close(database);
}

}

В чем проблема ??

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 28 июня 2011

Кроме того, убедитесь, что у вас только одно подключение к sqlite открыто в любой момент в любом потоке.Несколько соединений не будут работать.

0 голосов
/ 28 июня 2011

Пожалуйста, убедитесь, что в вашей базе данных есть значения для всех этих полей.

Я думаю, для JourneyName, LocationName, Description будет нулевое значение.

Итак, перед привязкой этих значений,сначала проверьте, как показано ниже:

NSString * strJourneyName = @ "";

char * JourneyNameChars = (char *) sqlite3_column_text (оператор, 3);

if (JourneyNameChars == NULL){

strJourneyName = @"";
}

else{

strJourneyName = [NSString stringWithUTF8String: JourneyNameChars];
}

Проверкаэто для всех полей с типом данных = TEXT.

Надеюсь, что это поможет вам и решит вашу проблему.

Приветствия.

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