2012-03-18 3 views
-1

select 쿼리 포함 방법을 실행하고 있지만 컴파일 된 문이 작동하지 않습니다. 중단 점이 선언 된 줄을 건너 뜁니다. 커서를 놓으면 아무 값도 표시되지 않습니다. 코드 내가 사용하고 있습니다 :선택 쿼리가 SQLite에서 작동하지 않습니다

-(NSMutableArray *)GetAllPartsName 
{ 
    NSString *path = [self getDBPath]; 
    // Open the database from the users filessytem 

    NSMutableArray *Parts=[[[NSMutableArray alloc]init]autorelease ]; 
    if(sqlite3_open([path UTF8String], &database) == SQLITE_OK) { 
     // Setup the SQL Statement and compile it for faster access 

     NSString *sqlQuery = [NSString stringWithFormat:@"SELECT Parts_Name FROM Parts"]; 
     NSLog(@"%@",sqlQuery); 
     const char *sqlStatement = [sqlQuery UTF8String]; 
     //The break point skips the sqlite3_stmt. 
     sqlite3_stmt *compiledStatement; 
     //when i put the cursor over compiledStatement it shows no value 
     if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) { 
      // Loop through the results and add them to the feeds array 
      while(sqlite3_step(compiledStatement) == SQLITE_ROW) { 
       // Read the data from the result row 
       NSMutableDictionary *PositionDict=[[NSMutableDictionary alloc]init]; 
       //setting the parts into dictionary 
       [PositionDict setObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0)] forKey:@"Parts_Name"]; 
       [Parts addObject:PositionDict]; 
       NSLog(@"%@",PositionDict); 
       [PositionDict release]; 
      } 
     } 
     // Release the compiled statement from memory 
     sqlite3_finalize(compiledStatement); 
    } 
    sqlite3_close(database); 
    return Parts; 
} 

답변

0

시도 FMDattabase (https://github.com/ccgus/fmdb)

BASIC :

FMDatabase *_db = [[FMDatabase databaseWithPath:[[self class] databaseFilePath]] retain]; 
    [_db open]; 

NSMutableArray *emails = [[NSMutableArray alloc] init]; 
NSString * query = [NSString stringWithFormat:@"SELECT `email` FROM `email`"]; 
FMResultSet * result = [_db executeQuery:query]; 
while ([result next]) 
{ 
    [emails addObject:[result stringForColumn:@"email"]]; 
} 
return [emails autorelease]; 
관련 문제