データベースを正常に作成してアクセスすることができました。ただし、後で属性のタイプを変更する必要がある場合は、プロジェクトのフォルダーデータベースを変更してから、新しいデータベースをXcodeに追加しました。今すぐアプリを実行すると(シミュレーターからアプリのディレクトリを削除しましたが)、古いデータベースを引き続き取得できます。
私は次のようにプログラムでテーブルを変更しようとしました:
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"TTSData.sql"];
success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
//
sqlite3_stmt *statement;
if(sqlite3_open([defaultDBPath UTF8String], &database) == SQLITE_OK)
{
NSString *updateSQL = [NSString stringWithFormat: @"ALTER TABLE Patient ALTER COLUMN Result DOUBLE"];
const char *update_stmt = [updateSQL UTF8String];
sqlite3_prepare_v2(database, update_stmt, -1, &statement, NULL);
if(sqlite3_step(statement)==SQLITE_DONE)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Success" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
alert=nil;
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Not Altered" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
alert=nil;
}
sqlite3_finalize(statement);
sqlite3_close(database);
}
しかし、私はまだ古いデータベースを取得しています。誰かが私がここで間違っているかもしれないことの手がかりを持っていますか?