iPad 開発プロジェクトで SQLite データベースへの書き込みに問題があります。これは、insert ステートメントを使用してデータベースに書き込むコードです。ステートメントを実行しても Sqlite はエラーを返しませんが、データはまだデータベースに保存されていません。
私の挿入ステートメントの簡略化されたバージョン:
//Insert Into POHeader(CustID, CatalogName) Values('0', 'webdemo')
@try {
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:@"Orders.db"];
BOOL success = [fileMgr fileExistsAtPath:dbPath];
if(!success)
{
NSLog(@"Cannot locate database file '%@'.", dbPath);
}
if(!(sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK))
{
NSLog(@"An error has occured: %@", sqlite3_errmsg(db));
}
sql = [self prepareSqlForPOHeader];
sqlite3_stmt *sqlStatement;
int sqlResult = (sqlite3_prepare_v2(db, sql, -1, &sqlStatement, NULL));
if (sqlResult != SQLITE_OK)// (sqlite3_prepare_v2(db, sql, -1, &sqlStatement, NULL) != SQLITE_OK)
{
NSLog(@"Problem with prepare statement: %@", sqlite3_errmsg(db));
}else{
//success
}
sqlite3_finalize(sqlStatement);
}
@catch (NSException *exception) {
NSLog(@"Problem with prepare statement: %@", sqlite3_errmsg(db));
}
@finally {
sqlite3_close(db);
}