Ошибка подтверждения в sqlite3 с использованием XCode, проблема с привязкой? - PullRequest
0 голосов
/ 07 сентября 2011
    -(void)updatepw{

databaseName=@"bestfb.sqlite";

NSArray *documnetPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documnetDir =[documnetPath objectAtIndex:0];
databasePath=[documnetDir stringByAppendingPathComponent:databaseName];

if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {

NSString *update = [[NSString alloc] initWithFormat:@"update staff set pword = %@ where staffID=1;", todb];


sqlite3_stmt *selectstmt;

    const char *sql= (char *) update;
    NSLog(@"new sql :%@", sql);

    NSLog(@"values: %@", newpw.text);



    if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) ==SQLITE_OK){
        NSLog(@"prepare failed");
        NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));
    }

    else {

        sqlite3_bind_text(selectstmt, 1, [todb UTF8String], -1, SQLITE_TRANSIENT);
        NSLog(@"binding done");

    }

    int success1 = sqlite3_step(selectstmt);        
    if (success1 != SQLITE_DONE) {
        NSAssert1(0, @"Error: failed to save priority with message '%s'.", sqlite3_errmsg(database));
    }
    sqlite3_finalize(selectstmt);

}   
sqlite3_close(database);

    }

Привет всем, я работаю над исправлением ошибки в течение нескольких часов.Я не мог заставить базу данных обновляться, она просто зависала, когда я пытался обновить.

Любой, кто может помочь, приветствуется!

Пожалуйста, будьте осторожны, так как я только новичок в XCode.

1 Ответ

0 голосов
/ 07 сентября 2011

Я думаю, что вы пропустили одинарные кавычки в предложении ниже до и после% @

заменить на это.

NSString *update = [[NSString alloc] initWithFormat:@"update staff set pword = '%@' where staffID=1;", todb];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...