0

iPhone 6.1 Simulator を使用していますが、動作します。しかし、iPhone [iOS 6.1] にアクセスすると、「更新中にエラーが発生しました。エラーではありません」というエラーが表示されます。ヘルプ!!!!

    NSString *filePath = [[[NSBundle mainBundle] resourcePath ]stringByAppendingPathComponent:@"myDatabase.sqlite"];


    NSString* str2 = SeqNo1.text;
    sqlite3 *database;
    sqlite3_stmt *updateStmt=NULL;
    if(sqlite3_open([filePath UTF8String], &database) == SQLITE_OK)
    {
        NSString* sql= [NSString stringWithFormat:@"UPDATE MyTable Set MyField2 = \"%@\" WHERE MyField1 = \"%@\"", @"Y", str2];
        if(sqlite3_prepare(db, [sql cStringUsingEncoding:NSASCIIStringEncoding], -1, &updateStmt, NULL) != SQLITE_OK)
            NSLog(@"Error while creating update statement. %s", sqlite3_errmsg(database));
    }
    if(sqlite3_open([filePath UTF8String], &database) == SQLITE_OK)        
    {
    int step = sqlite3_step(updateStmt);
    if(step != SQLITE_DONE)

        NSLog(@"Error while updating. %s", sqlite3_errmsg(database));  // THIS WHERE THE ERROR IS OCCURRING
    sqlite3_finalize(updateStmt);
    sqlite3_close(database);
    }
    else{
        NSLog(@"Error while Opening Databse. %s", sqlite3_errmsg(database));
    }
4

1 に答える 1

1

MainBundle は readonlyです。バンドル内のファイルを変更することはできません。

データベース ファイルをドキュメント ディレクトリにコピーし、そこから読み書きする必要があります。バンドルからではありません。

于 2013-03-04T11:31:51.997 に答える