テーブルのレコードを更新する簡単なプログラムがあります
テーブルは「人」で、「名前」と「年齢」の 2 つの列があります。次のように、いくつかのレコードが挿入されました。
name age
tom 20
andy 30
han 25
現在、テーブルの行を更新するプログラムを作成しています。
NSString *database=[[NSBundle mainBundle] pathForResource:@"mytable" ofType:@"sqlite"];
sqlite3_open([database UTF8String],&contactDB);
NSString *text=@"andy";
NSString *query=[NSString stringWithFormat:@"UPDATE person SET age=%d WHERE name='%@'",30,text];
sqlite3_stmt *statement;
sqlite3_prepare_v2(contactDB,[query UTF8String],-1,&statement,NULL);
sqlite3_finalize(statement);
sqlite3_close(contactDB);
プログラムは正常に動作しますが、データベースは更新されません (SQLite Manager を使用してデータベースを参照しています)
データベースから読み込もうとすると、うまくいきます:
NSString *database=[[NSBundle mainBundle] pathForResource:@"mytable" ofType:@"sqlite"];
sqlite3_open([database UTF8String],&contactDB);
NSString *query1=[NSString stringWithFormat:@"SELECT * FROM person WHERE age=%d;",30];
sqlite3_stmt *statement;
sqlite3_prepare_v2(contactDB,[query1 UTF8String],-1,&statement,NULL);
sqlite3_step(statement);
NSString *result=[[NSString alloc] initWithUTF8String:(const char *)sqlite3_column_text(statement, 0)];
label.text=result;
sqlite3_finalize(statement);
sqlite3_close(contactDB);