データベースからデータを選択する際に問題が発生しました。次のクエリでデータベースに「フォルダーテーブル」を作成しました
CREATE TABLE foldertable(fid integer primary key autoincrement,foldername text);
そして、ここに fid(folderid) に従ってフォルダー名を取得する私のコードがあります
-(NSString *)getFolderFromDatabase:(int)folderId
{
NSString * retriveFolderName;
UIApplication * application=[UIApplication sharedApplication];
ScrapMemoAppDelegate * appDelegate=application.delegate;
NSString * destinationPath=[appDelegate getDestinationPath];
sqlite3 * database;
int retriveWhere=folderId;
if(sqlite3_open([destinationPath UTF8String], &database)==SQLITE_OK)
{
const char * query="select foldername from foldertable where fid = ?;";
sqlite3_stmt * statement;
if(sqlite3_prepare_v2(database, query, -1, &statement, NULL)==SQLITE_OK)
{
if (sqlite3_step(statement)==SQLITE_DONE)
{
sqlite3_bind_int(statement, 1, retriveWhere);
retriveFolderName=[NSString stringWithCString:sqlite3_column_text(statement,0) encoding:NSASCIIStringEncoding];
}
else
{
NSLog(@"Error %s",sqlite3_errmsg(database));
}
sqlite3_reset(statement);
}
sqlite3_close(database);
}
return retriveFolderName;
}
しかし、ターミナルで同じクエリを発行しているときにnullのフォルダ名を取得すると、適切な名前が付けられます。解決策を提供してください。