NSDatesを含むFMDBを介して実行するクエリは実行されますが、結果セットを返したり、データベースを編集したりすることはありません。iOS 4.3シミュレーターで作業しています。日付を指定しないその他のクエリは、正しく実行されます。これが私が使用するコードの抜粋です:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh-mm-ss"];
NSDate *start = [dateFormatter dateFromString:@"2011-07-18 06:40:21" ];
NSDate *end = [dateFormatter dateFromString:@"2011-07-18 06:41:19"];
[dateFormatter release];
FMDatabase* db = [FMDatabase databaseWithPath:appDelegate.databasePath];
if (![db open]) {
NSLog(@"Could not open db.");
}
[db beginTransaction];
[db executeUpdate:@"delete from time_stamp_table where time_stamp >= ?
and time_stamp <= ?",start,end];
NSLog(@"Err %d: %@", [db lastErrorCode], [db lastErrorMessage]);
[db commit];
[db close];
スキーマは、time_stamped_tableにtime_stampを次のように記述します。
create table time_stamp_table{
id INTEGER PRIMARY KEY,
time_stamp DATETIME NOT NULL
}
シミュレートされたアプリケーションコンテキストに保存されているデータベースを使用して、コマンドラインのsqlite3でこれらのクエリを実行すると、機能します。私が見逃しているFMDBを使用したNSDateによるクエリのための特別な準備はありますか?