Je souhaite utiliser la requête de mise à jour SQLite pour mettre à jour la base de données dans l'iPhone.Mise à jour iPhone SQLite DB
Quelqu'un pourrait-il me fournir le code comment faire cela?
Je souhaite utiliser la requête de mise à jour SQLite pour mettre à jour la base de données dans l'iPhone.Mise à jour iPhone SQLite DB
Quelqu'un pourrait-il me fournir le code comment faire cela?
+ (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;
}
Compte tenu d'une base de données déjà ouverte:
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);
}
Merci Vincent, bien pourriez-vous aussi savoir que la façon de l'utiliser pour mettre à jour les champs, comme je change les données dans les textfiedlds et que vous souhaitez mettre à jour avec votre code. comment faire cela ... s'il vous plaît aidez-moi ... ai-je besoin de créer un dictionnaire ou ce que juste me fournir avec le code entier ou vous pouvez même m'envoyer un email à [email protected] – Sabby