내부 SQLite 데이터베이스에 저장된 데이터 목록을 탐색해야하는 앱을 만들고 있습니다. 내 응용 프로그램에서 모든 데이터베이스 작업에 대해 FMDB를 사용하고 있습니다. 표시된 데이터에 다음 레코드 또는 이전 레코드가 있거나 다른 작업에 대해 버튼이 비활성화 된 경우 "다음"및 "이전"데이터를 사용할 수 있습니다. 사용자가 데이터 목록을 클릭하여 데이터의 ID를 보내 "데이터보기 영역"으로 이동합니다. 내 테이블 구조는 "데이터보기 영역"에서 테이블 MessageList의 (ID INT 기본 키, 제목 텍스트, 시간 텍스트, 메시지 텍스트)특정 레코드 다음에 또는 FMDB의 특정 레코드 앞에 행이 있는지 확인
를 작성, 내가 쿼리를 해고
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent:@"message.sqlite"];
FMDatabase *database = [FMDatabase databaseWithPath:path];
[database open];
NSString *query = @"SELECT *,(SELECT id FROM messagelist WHERE id < ";
query = [query stringByAppendingString:[NSString stringWithFormat:@"%@",_id_row]];
query = [query stringByAppendingString:@" ORDER BY id DESC LIMIT 1) AS previous_id,(SELECT id FROM messagelist WHERE id > "];
query = [query stringByAppendingString:[NSString stringWithFormat:@"%@",_id_row]];
query = [query stringByAppendingString:@" ORDER BY id ASC LIMIT 1) AS next_id FROM messagelist WHERE id = "];
query = [query stringByAppendingString:[NSString stringWithFormat:@"%@",_id_row]];
FMResultSet *results_one = [database executeQuery:query];
if([results_one next])
{
NSLog(@"Previous id is %d and next id is %d", [results_one intForColumn:@"previous_id"],[results_one intForColumn:@"next_id"]);
}
어떤하지만 내 애플 리케이션의 안드로이드 버전이 쿼리와 함께 잘하고있다 같은 아무것도 반환하지 않습니다. 내가 잘못하고있는 곳을 알려주십시오.
N : B : SQLite 브라우저로 가져 와서 데이터베이스를 조사한 결과 id가 삽입되지 않았 음을 알았습니다. 가능하면 id가 기본 키로 선언되므로 그에 따라 자동으로 삽입되어야하고 그에 따라 증가해야합니다. . 고맙습니다.