Как написать запрос для получения идентификатора из таблицы базы данных sqlite в приложениях iphone - PullRequest
0 голосов
/ 04 марта 2010

Я новичок в использовании базы данных SQLite в приложениях для iphone. Я создал базу данных с таблицей входа и добавил базу данных в проект. Таблица входа содержит 3 поля ID, Username и Password поля. Я ввожу имя пользователя и пароль в текстовые поля представления. Теперь я ищу, как извлечь идентификатор из таблицы входа в систему, когда введенные имя пользователя и пароль верны, проверив таблицу. Может ли кто-нибудь помочь в этом.

Мой код:

-(void)checkInDatabase
{
    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
    {
        //uid = "select count(*) from logins where Username==txtusername.text and Password==txtpassword.text";
        NSString* sql =[[NSString alloc] initWithFormat:@"select id from login where Username =%s and Password=%s;",txtusername.text,txtpassword.text];

        [sql UTF8String];
        sqlite3_stmt *statement;
        if(sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK)
        {
            if(sqlite3_step(statement) == SQLITE_ROW);
            {
                uid =[NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 1)]; 
            }
        }
        else
        {
            uid =0;
        }
        sqlite3_finalize(statement);
    }
    sqlite3_close(database);
}

Ответы [ 2 ]

1 голос
/ 04 марта 2010

Вам необходимо иметь оператор SQL в формате, который может использоваться sqlite3. Вы можете сделать что-то вроде этого:

NSString *select = [[NSString alloc] initWithFormat:@"select id from login where Username=%s and Password=%s;", txtusername.text, txtpassword.text];

Поскольку sqlite - это библиотека C, вам нужно получить UTF8-версию строки выбора и передать ее в библиотеку sqlite:

if (sqlite3_prepare_v2(database, [sql UTF8String], -1, &statement, NULL) == SQLITE_OK)
0 голосов
/ 12 марта 2010

Я заработал, написав такой код:

NSString* sql = [[NSString alloc] initWithFormat:
                                  @"select id from login where Username='%@' and  
                                  Password='%@'",txtusername.text,txtpassword.text];

Теперь он мне подходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...