【问题标题】:Update iPhone SQLite DB更新 iPhone SQLite 数据库
【发布时间】:2010-10-21 05:42:09
【问题描述】:

我想使用 SQLite 更新查询来更新 iPhone 中的数据库。

谁能给我代码怎么做?

【问题讨论】:

    标签: iphone sql sqlite sql-update


    【解决方案1】:

    给定一个已经打开的数据库:

    static sqlite3_stmt *update_progress_statement = nil;
    
    - (void) setProgress:(int)newProgress forKey:(int)key {
        if (update_progress_statement == nil) {
            const char *sql = "UPDATE progress SET value = ? WHERE key = ?";
            if (sqlite3_prepare_v2(database, sql, -1, &update_progress_statement, NULL) != SQLITE_OK) {
                NSLog(@"Error: failed to prepare update_progress_statement with message '%s'.",sqlite3_errmsg(database));
                return;
            }
        }
        sqlite3_bind_int(update_progress_statement, 1, newProgress);
        sqlite3_bind_int(update_progress_statement, 2, key);
        int success = sqlite3_step(update_progress_statement);
        if (success == SQLITE_ERROR){
            NSLog(@"Error: failed to update update_progress_statement with message '%s'.", sqlite3_errmsg(database));
        }
        sqlite3_reset(update_progress_statement);
    }
    

    【讨论】:

    • 谢谢文森特,你能否让我知道如何使用它来更新字段,因为我更改了 textfiedlds 中的数据并想用你的代码进行更新。如何做到这一点.. ...请帮帮我...我需要创建字典还是只为我提供整个代码,或者您甚至可以通过 sabby3861@rediff.com 给我发电子邮件
    【解决方案2】:
    + (BOOL)UpDateGetAvailableContentObjects:(NSMutableDictionary*)availableReportsDict
    
    {   
        //The following two lines of code are sure to be called because this method has to be called.  
        //So these two lines will set the static database variable for use in future as well in add, delete, update functions.
    
    htmlReportAppDelegate *appDelegate = (htmlReportAppDelegate *)
    [[UIApplication sharedApplication] delegate];
    
    database = appDelegate.database;
    
    const char *sqlStatement = "insert into 
    
    GetAvailableContentObjectsTable(contentID,id,lastUpdate,name,typeid,subpages) Values(?,?,?,?,?,?)";
    
    int success;
    
    if(sqlite3_prepare_v2(database, sqlStatement, -1, &get_statement, NULL) == SQLITE_OK) 
    
    {
    
    
    sqlite3_bind_text(get_statement, 1, [[availableReportsDict valueForKey:@"pages"] UTF8String], -1, SQLITE_TRANSIENT);
    
    sqlite3_bind_text(get_statement, 2, [[availableReportsDict valueForKey:@"id"] UTF8String], -1, SQLITE_TRANSIENT);
    
    sqlite3_bind_text(get_statement, 3, [[availableReportsDict valueForKey:@"lastUpdate"] UTF8String], -1, SQLITE_TRANSIENT);
    
    sqlite3_bind_text(get_statement, 4, [[availableReportsDict valueForKey:@"name"] UTF8String], -1, SQLITE_TRANSIENT);
    
    sqlite3_bind_int(get_statement, 5, [[availableReportsDict valueForKey:@"typeid"]intValue]);
    
    sqlite3_bind_int(get_statement, 6, [[availableReportsDict valueForKey:@"subpages"]intValue]);
    
    
    success = sqlite3_step(get_statement);
    
    
    if (success == SQLITE_ERROR) {
    
    NSAssert1(0, @"Error: failed to insert into the database with message '%s'.", sqlite3_errmsg(database));
    
    }
    
    }
    
    else {
    
    NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));
    
    }
    
    // Release the compiled statement from memory
    
    sqlite3_finalize(get_statement);
    
    get_statement = nil;
    
    return success;
    
    }
    

    【讨论】:

      猜你喜欢
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多