2012-09-28 2 views
1

SQLite를 사용하여 앱용 데이터를 저장하려고합니다. 이 데이터베이스는 수천 개의 레코드를 가질 수 있으므로 시작시 어레이에 모든 레코드를로드하는 것은 좋은 생각이 아닙니다. 그래서 그들을 각각 cellForForAtIndexPath에 ID로로드합니다. 이것은 효과가 있지만, 나는 그들을 분류 할 수 없다 ... 아무도 더 좋은 방법을 생각할 수 있을까? 나는 그것이 정말 간단 내기 : LiOS - cellForRowAtIndexPath SQLite 데이터 정렬?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"VerbCell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (!cell) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 

    VerbData *verb = [[VerbData alloc] init]; 
    if(isFiltered) 
     verb = [searchResults objectAtIndex:indexPath.row]; 
    else 
    { 
     const char *sql = [[NSString stringWithFormat: @"SELECT infinitive, english FROM verbs WHERE id=%d", indexPath.row+1] UTF8String]; 
     sqlite3_stmt *sqlStatement; 
     if(sqlite3_prepare_v2(db, sql, -1, &sqlStatement, NULL) != SQLITE_OK){ 
      NSLog(@"Problem with prepare statement: %s", sqlite3_errmsg(db)); 
     }else{ 
      while (sqlite3_step(sqlStatement) == SQLITE_ROW) { 
       verb.infinitive = [NSString stringWithUTF8String:(char *)sqlite3_column_text(sqlStatement,0)]; 
       verb.english = [NSString stringWithUTF8String:(char *)sqlite3_column_text(sqlStatement,1)]; 
      } 
     } 
    } 

    cell.textLabel.text = verb.infinitive; 
    cell.detailTextLabel.text = verb.english; 

    return cell; 
} 

감사합니다 (:

답변

0

당신은 오프셋 사용하여 순서대로 선택하고 제한 할 수 있습니다

Row Offset in SQL Server

Belkadmin은 ORDER BY [ASCENDING | DESCENDING]을 사용하면 DBMS가 모든 정렬 작업을 수행합니다. u는 원격 데이터베이스를 가지고 있으므로 서버 측 woll은 모든 노력을 다합니다. 데이터베이스 제한의 선두로부터의 오프셋 (offset)입니다 - - 데이터 행의 최대 크기가 수집 오프셋 : 당신은 또한에 의해 ... OFFSET LIMIT FROM ... ORDER ...

SELECT를 사용할 수 있습니다 쿼리 별

그런 다음 테이블을 청크로로드 할 수 있습니다. 다른 트릭 즉 테이블 스크롤 100 행 제로드 비동기로 행을 쿼리이지만, 사용자가 70 행 이하일 때 다른 쿼리 비동기로 이루어지고, 소스 어레이

+0

지금 얻었다 (: 당신을 감사하십시오 : D –

1

당신은 추가해야합니다 "ORDER yourField BY의"SQL 쿼리에를

+0

에 데이터를 추가하지만, 쿼리는 하나 개의 행을 선택한다? :/ –

+0

위와 같은 바보 같은 말을하지 마십시오. 나는 그것을 얻었다 :) –