私はios(Objective-C)とsqlに非常に慣れていません。私はここにあるsqlite(特にsqlite3)のチュートリアルに従っています:http://www.tutorialspoint.com/ios/ios_sqlite_database.htm そして私はすべてを正しく実装しました。問題は、同じ reg id (データベース内の要素を検索するために使用される主キー) で情報を入力しようとすると、キーが一意ではないというエラーが表示されることです。
- (BOOL) saveData:(NSString*)registerNumber name:(NSString*)name
department:(NSString*)department year:(NSString*)year;
{
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &database) == SQLITE_OK)
{
NSString *insertSQL =
[NSString stringWithFormat:@"insert into studentsDetail (regno,name, department, year) values (\"%d\",\"%@\", \"%@\", \"%@\")",[registerNumber integerValue], name, department, year];
const char *insert_stmt = [insertSQL UTF8String];
sqlite3_prepare_v2(database, insert_stmt,-1, &statement, NULL);
int s = sqlite3_step(statement);
const char *errmsg = sqlite3_errmsg(database);
if (s == SQLITE_DONE)
{
sqlite3_reset(statement);
return YES;
}
else {
sqlite3_reset(statement);
return NO;
}
}
return NO;
}
saveData: アクションを作成するにはどうすればよいですか? 単に拒否されるのではなく、実際にデータベース内のエントリを更新しますか? ありがとう!