두 개의 열이 조합 (텍스트), 플래그 (숫자)로 구성된 테이블이 있습니다. 선택 쿼리에서 where 절을 사용하여 조합 값에 따라 플래그 값을 검색하려고합니다.데이터베이스에서 특정 데이터를 가져 오는 데 어려움이 있습니다.
조합 값이 1에서 시작될 때 문제가 발생합니다. 여기서 조합 = '1001'이면 테이블에서 플래그의 올바른 값을 검색하지만 0에서 시작하는 경우 여기서 조합 = '0010'이면 데이터베이스에서 아무 것도 검색되지 않습니다. 코드를 디버깅했는데 이유가 없습니다. 다음은 데이터베이스 이미지입니다.
-(void)fetchfromDatabase
{
sqlite3 *database;
NSString *strPath = [[NSBundle mainBundle]pathForResource:@"ken" ofType:@"db"];
NSLog(@"DBPath : %@",strPath);
const char *dbPath = [strPath UTF8String];
if(sqlite3_open(dbPath, &database)==SQLITE_OK)
{
NSLog(@"Database is Ok");
// const char *cConcate = [concate UTF8String];
NSString *query = [NSString stringWithFormat:@"select * from kentable where combination =%@",concate];
NSLog(@"final concate in database:%@",concate);
NSLog(@"Query:%@",query);
const char *sqlQuery =[query cStringUsingEncoding:NSASCIIStringEncoding];
NSLog(@"char query %s", sqlQuery);
sqlite3_stmt *queryStatement;
if(sqlite3_prepare_v2(database, sqlQuery,-1,&queryStatement, NULL)==SQLITE_OK)
{
NSLog(@"Conversion is Ok");
while (sqlite3_step(queryStatement)==SQLITE_ROW)
{
NSLog(@"in While Statement of row");
int flag=sqlite3_column_int(queryStatement, 1);
NSLog(@"question 5:%d",flag);
}
sqlite3_reset(queryStatement);
}
else
{
NSLog(@"ERROR");
}
sqlite3_close(database);
}
}
귀하의 검색어에 따옴표를 추가 할 수 있습니다. CoreData와 함께 sqlite를 사용하는 것을 선호하지만. – govi
핵심 데이터 사용! 길은 빠르며 관리 할 코드가 적습니다. 당신은 선택 진술을 작성하지 않을 것입니다. –
@ govi 당신 말이 맞습니다. 많이 감사합니다. 괜찮 았어. –