2011-12-09 26 views

回答

9

sample code for FMDB很清楚地說明了FMResultSet的工作原理。通過在每次迭代中調用next方法遍歷結果集中的行。在循環內使用數據訪問器方法來檢索當前行的每列數據。如果你想把它變成一個數組,你必須手動完成。就像這樣:

NSMutableArray *array = [NSMutableArray array]; 
FMResultSet *rs = [db executeQuery:@"select * from table"]; 
while ([rs next]) { 
    // Get the column data for this record and put it into a custom Record object 
    int col1 = [rs intForColumn:@"col1"]; 
    int col2 = [rs intForColumn:@"col2"]; 
    Record *record = [Record recordWithCol1:col1 col2:col2]; 
    [array addObject:record]; 
} 
[rs close]; 

正如你看到的,我假設你已經建立了一個自定義的Record類,它表示在數據庫表中的記錄。當然,你也可以使用字典。

+0

謝謝,這將工作,但會增加我的應用程序的開銷,但很好知道沒有更少 – Slee

+0

你好,美好的一天!如果我可能會問,「Record * record」是什麼? – Jahm

+0

鏈接斷開。請更新。 – esh

13

你可以試試這個。

NSMutableArray *array = [NSMutableArray array]; 
FMDatabase *database = [FMDatabase databaseWithPath:databasePath]; 

[database open]; 

FMResultSet *results = [database executeQuery:@"SELECT * FROM Table"]; 
while ([results next]) { 
    [array addObject:[results resultDictionary]]; 
} 

NSLog(@"%@", array); 

[database close]; 

我在項目中使用它,它工作得很好。

+0

謝謝。輝煌。 – neobie

+0

[results result Dictionary]徘徊!!! – Sars

相關問題