私のiPhoneアプリ(SDK 6.1)でFMDBを使用しています。このアプリで FMDB を使用して 3 つの DB を動作させました。同じアプリに別の DB ファイルを追加しました。これも結果を返すはずですが、実際には 0 の結果しか返しません。UNIX プロンプトで sqlite3 を使用し、クエリをレプリケートすると (テーブル名から * を選択)、結果が表示されます。
このコードに問題がある人はいますか? エラーチェックもオンにして、コードを実行してもエラーは発生しません。アプリを削除して、シミュレーターと iPhone の両方に再インストールしようとしましたが、同じ結果が得られました。
助けてくれてありがとう!
FMDatabase *database = [FMDatabase databaseWithPath:file];
database.logsErrors = YES;
if (![database open])
{
[Log log:TERR :@"ERROR Opening Database <%@>", file];
return FILE_NOT_FOUND;
}
NSString *selquery = [[[NSString alloc] initWithFormat:@"SELECT * FROM %@",
tablename] autorelease];
[Log log:TINFO :@"selquery: %@", selquery];
FMResultSet *results = [database executeQuery:selquery];
NSUInteger count = [database changes]; // how many rows affected apparently
if (!count)
{
[Log log:TINFO :@"NO RESULTS FOUND, count = %d", count];
return NO_SQL_RESULTS;
}
if ([database hadError])
{
NSString *msg = [[[NSString alloc] initWithFormat:@"Database Error <%@> %d: %@", dbname, [database lastErrorCode], [database lastErrorMessage]] autorelease];
[Log log:TERR :msg];
[Log log:TSERVLOG :msg];
return DB_ERROR;
}
SearchItem *item = nil;
while ([results next])
{