2012-03-21 7 views
0

こんにちは私はこのコードを使用していますが、クエリーが間違っています 同じクエリMesaSQLiteを実行すると、喜んで働いています私はデータベースからリストを取得する方法

名= 『象』ここで私は動物から「SELECT *を使用
-(NSMutableArray*)getAnimalsList 
{ 
    [animalsList removeAllObjects]; 

    sqlite3_stmt* statement; 
    const char *sql; 
    sql = "select * from animals where name = Elephant"; 

    if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) != SQLITE_OK) 
    { 
     NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database)); 
    } 


    while (sqlite3_step(statement) == SQLITE_ROW) 
    { 

     NSInteger primaryKey = sqlite3_column_int(statement,0);  
     Animal *animalObject = [[Animal alloc] initWithPrimaryKey:primaryKey database:database]; 
     [animalsList addObject:animalObject]; 
     [animalObject release]; 
     animalObject = nil; 

    } 
    sqlite3_finalize(statement); 

    printf("\n The animals list count is :%d",[animalsList count]); 
    return animalsList ; 

} 

助ける;」SQLiteの中で、それはあなたがあなたのコード内の引用符で象を囲むされていません

答えて

3

を働いている、してみてください

sql = "select * from animals where name = 'Elephant'"; 
+0

ありがとうございました。あなたは動物の名前を渡すためにSQL stmtを提供できますか? - (NSMutableArray *)getAnimalsList:(NSString *)animalName {sql = "動物から選択* name = animalName"; – user1179590

+0

私は次のコードでそれを手に入れました - (NSMutableArray *)getAnimalsList:(NSString *)animalName {\t \t [animalsList removeAllObjects]; \t \t sqlite3_stmt *文;\t \t NSString * sql = [NSString alloc] initWithFormat:@ "select * from animals = '%@'"、animalName]; \t(sqlite3_prepare_v2(データベース、[SQL UTF8Stringを]、-1、&声明、NULL)= SQLITE_OK!)@ \t { \t \t NSAssert1(0、あれば "エラー:メッセージ '%s' にして文を準備することができませんでした。" 、sqlite3_errmsg(データベース)); \t} – user1179590

関連する問題