NSString userNameとuserPasswordを使用して、まずカスタムクラスUserDetailsを作成します。
次にあなたが
- (UserDetails *)getUserDetails:(NSString *)userLogin password:(NSString *)userPassword
{
UserDetails *retVal;
sqlite3 *database;
NSString *dbPath = @"your_db_path";
if(sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK){
const char *sql_statement = [[NSString stringWithFormat:@"select * from Users where UserLogin = '%@' and UserPassword = '%@'", userLogin, userPassword] UTF8String];
sqlite3_stmt *compiled_statement;
if(sqlite3_prepare_v2(database, sql_statement, -1, &compiled_statement, NULL) == SQLITE_OK){
while(sqlite3_step(compiled_statement) == SQLITE_ROW){
[retVal setUsername:[NSString stringWithUTF8String:(const char *)sqlite3_column_text(compiled_statement, 0)]];
[retVal setPassword:[NSString stringWithUTF8String:(const char *)sqlite3_column_text(compiled_statement, 1)]];
}
sqlite3_finalize(compiled_statement);
sqlite3_close(database);
}
}
return retVal;
}
そして、あなたはほぼ同じコードを使用することができ、データを挿入するためではなく、値を返さずにデータを読み込むために、このような何かを試すことができますので、あなたがそれを必要とする場合の方法は、ボイドや一部の制御値を返します。あなたは、実行中にエラーが発生した場合にのみ、SQL文では、あなたのアプリのこのフローのユーザー(userloginの、のUserPassword)の値(「%の@」、「%の@」)
2つの操作を1つの方法または1つのアクションで実行しますか?最初の挿入オプションは、次回から選択操作のみが動作するはずです。 – Santosh
次に、selectが0レコードを返す場合、新しいレコードと同じデータを挿入してSQLクエリを実行することを追加できます –