空のフィールドがいくつかある SQLite データベースからテーブルを開く必要があるため、開くテーブルの名前とドキュメント フォルダー内のデータベース アドレスを指定した後 (問題ありません)、クエリを設定し、関数sqlite_prepare_v2
を使用してデータの抽出を準備しますが、値1
( SQLite_ERROR
) を返し、構文エラーが発生します。なんで?フィールド名を正しく書きました。
-(NSMutableArray*)loadDatiFromTable:(NSString*) nameTable {
NSString *query =[NSString stringWithFormat:@"SELECT id,title, ifnull(IMAGES,''),ifnull(text, ''), ifnull(NUMBER, ''),ifnull(CAP, 0) FROM %@ order by ID", nameTable];
sqlite3_stmt *statement;
int sqlResult = sqlite3_prepare_v2(database, [query UTF8String], -1, &statement,nil);
NSLog(@"The value is %d", sqlResult); // here sqlResult is 1
if (sqlResult == SQLITE_OK) {
while (sqlite3_step(statement) == SQLITE_ROW) {
//......
}
sqlite3_finalize(statement);
} else {
NSLog(@"Failed from sqlite3_step(statement). Error is: %s", sqlite3_errmsg(database) );
// here return: "Failed from sqlite3_step(statement). Error is: near "NUMBER": syntax error"
sqlite3_close(database);
}
return self.tableArray;
}
-(id) initWithTable:(NSString*)nomeTabella withDbPath: (NSString *)dbPath {
self = [super init];
if (self) {
if (sqlite3_open([dbPath UTF8String], &database) != SQLITE_OK) {
NSLog(@"Failed open database");
} else {
NSLog(@"OPEN DATABASE");
[self loadDatiFromTable:nomeTabella ];
}
return self;
}
}
エラーメッセージは次のとおりです。
"Failed from sqlite3_step(statement). Error is: near "NUMBER": syntax error"