J'ai écrit la requête d'insertion SQLITE pour insérer des données dans la table de base de données sqlite. Mais maintenant j'essaye d'ajouter une nouvelle colonne dans cette table de sqlite et en insérant de nouvelles valeurs à cette colonne. Alors que chaque fois que j'essaie de mettre à jour ma table de base de données, il faut créer une nouvelle colonne à chaque fois et mettre à jour et me donner de nouvelles valeurs insérées. Ci-dessous est mon alter et le code de mise à jour que je fais sur le clic d'un bouton.Alter Sqlite Table de base de données et requête de mise à jour pour iOS
-(void)updateStatusData:(NSString *)txt {
sqlite3_stmt *statement;
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
databasePath = [docsDir stringByAppendingPathComponent:@"db.sqlite"];
NSLog(@"%@",databasePath);
if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
NSString *updateSQL = [NSString stringWithFormat:@"ALTER TABLE STATUS ADD COLUMN newcolumn; UPDATE STATUS SET newcolumn=%@ WHERE rowid=1",txt];
const char *update = [updateSQL UTF8String];
NSLog(@"update statmnt %s",update);
sqlite3_prepare_v2(database, update, -1, &statement, NULL);
if (sqlite3_step(statement) == SQLITE_DONE)
{
sqlite3_bind_text(statement, 1, [txt UTF8String], -1, SQLITE_TRANSIENT);
NSLog(@" Status Results Updated Successfully");
} else {
NSLog(@"error %s",sqlite3_errmsg(database));
}
sqlite3_finalize(statement);
sqlite3_close(database);
}
}
Mon nouveau nom de colonne est newcolumn et les valeurs qu'il doit enregistrer sont 'txt'. Ma question est quand je lance ce code, je reçois une nouvelle colonne insérée dans ma table de base de données sqlite. Mais la valeur insérée est NULL pour cette nouvelle colonne. Le code devrait fonctionner exactement quand vous mettez à jour votre statut sur WHATSAPP, il sauve l'état mis à jour ... S'il vous plaît aidez-moi ce que je fais mal. Toute aide est appréciée.
assurez-vous que txt n'est pas nul – Alok
Vous pouvez également avoir besoin de fournir des guillemets: 'UPDATE STATUS SET newcolumn = '% @' OERE rowid = 1", txt' –
@Alok oui je l'ai vérifié, il n'est pas nul. –