Извлечение записей на основе последней записи из базы данных sqlite и отображение в UITableView - PullRequest
0 голосов
/ 28 ноября 2011

Я работаю с Sqlite DB для хранения и извлечения данных и отображения их в виде таблицы. У меня вопрос, как отобразить данные на основе последней записи, введенной в БД. Позвольте мне объяснить, что я делаю.

  1. Пользователи будут вводить туда данные (поля, такие как дата, пол, страна), и после нажатия кнопки сохранения данные сохраняются в sqlite DB.

  2. После сохранения сразу я покажу только даты в табличном представлении (следующая страница), которые я буду извлекать из базы данных sqlite. Но когда я отображаю даты в табличном представлении, они отображаются в порядке возрастания (на основе чисел).

  3. Но я хочу отобразить согласно последней записи, введенной пользователем. ниже то, что я делаю в коде.

    sqlite3_stmt    *statement;
    const char *dbpath = [databasePath UTF8String];
    NSString *selectSQL;
    
     if(sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
     {
     if ([set_user isEqualToString:@"Anonymous"] && [set_pass isEqualToString:@"Anonymous"]) 
       {
          selectSQL = [NSString stringWithFormat: @"SELECT * from Guest where username = '%@' and password = '%@'", set_user,set_pass];
       }
     else
       {
          selectSQL = [NSString stringWithFormat: @"SELECT * from Vitals where username = '%@' and password = '%@'", set_user,set_pass ];
       }
    const char *select_stmt = [selectSQL UTF8String];
    if(sqlite3_prepare_v2(contactDB, select_stmt, -1, &statement, NULL) == SQLITE_OK)
    {
        while(sqlite3_step(statement) == SQLITE_ROW)
        {
            sq_date = [NSString stringWithUTF8String:(char *) sqlite3_column_text(statement, 1)];
            sq_gender = [NSString stringWithUTF8String:(char *) sqlite3_column_text(statement, 2)];
            sq_ethnicity = [NSString stringWithUTF8String:(char *) sqlite3_column_text(statement, 12)];
            [date_array addObject:sq_date];
            [gender_array addObject:sq_gender];
            [ethnicity addObject:sq_ethnicity];
    
            /*if (![date_array containsObject:sq_date]) 
            {
                [date_array addObject:sq_date];
    
                NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"" ascending:NO];
                [date_array sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
                [sortDescriptor release];
            }*/
    
        }
        sqlite3_finalize(statement);
    }
    

    }

1 Ответ

0 голосов
/ 28 ноября 2011

Что вы можете сделать, это вставить данные (введенные пользователем) в базу данных sqlite, иметь другой столбец с именем timestamp и вставить текущую метку времени (может быть, время эпохи).Это может быть сделано для каждой строки.

При извлечении вы можете order by timestamp, а не идентификаторы, которые вы хотите.

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