これはばかげた問題に違いありませんが、クエリを機能させることができません。私のデータベースが空であるかのようです(私は二重にチェックしましたが、そうではありません)。単純なSELECT * FROM table
クエリです。これは私がそれを試す方法です:
+(MyDatabase *)database{
if (database == nil) {
database = [[MyDatabase alloc] init];
}
return database;
}
- (id)init
{
self = [super init];
if (self) {
NSString *sqliteDb = [[NSBundle mainBundle] pathForResource:@"personsDB" ofType:@"sqlite3"];
if (sqlite3_open([sqliteDb UTF8String], &database) != SQLITE_OK) {
NSLog(@"Fail to open Database.");
}
}
return self;
}
と
-(NSArray *)getAllRows{
NSMutableArray *retArray = [[NSMutableArray alloc] init];
NSString *query = @"SELECT * FROM persons";
sqlite3_stmt *statement;
NSLog(@"checking SQLITE_OK?");
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) == SQLITE_OK) {
NSLog(@"SQLITE_OK");
while (sqlite3_step(statement) == SQLITE_ROW) {
int personID = sqlite3_column_int(statement, 0);
char *personChars = (char *) sqlite3_column_text(statement, 1);
int gender = sqlite3_column_int(statement, 2);
int related = sqlite3_column_int(statement, 3);
NSString *person = [[NSString alloc] initWithUTF8String:personChars];
MyDBInfo *info = [[MyDBInfo alloc] initWithpersonID:personID person:person gender:gender related:related ];
[retArray addObject:info];
}
sqlite3_finalize(statement);
}
return retArray;
}
これはすべて興味深いものだと思います。
私のログには が表示されますchecking SQLITE_OK?
が、いいえSQLITE_OK
。私は得ていないFail to open Database.
ので、そこはすべて良いと思います。
データベースがいっぱいで、 というテーブルがありますpersons
。私はに非常に新しいsqlite
ですiOS apps
。
ありがとうございました。