0

「yesyes」と表示されてもSQLiteにデータを更新できないのはなぜですか。ここで私のコードを助けてください。viewdidloadから呼び出されます。

    -(void)updateData{

    CryptTestAppDelegate *delegate=(CryptTestAppDelegate *)[[UIApplication sharedApplication] delegate];

    sqlite3_stmt *stmt=nil;


    NSString *dd = @"testing";

    const char *sql = "Update ProvPuzz set desc2=?";


    sqlite3_prepare_v2(delegate.db, sql, 1, &stmt, NULL);
    sqlite3_bind_text(stmt, 1, [dd UTF8String], -1, SQLITE_TRANSIENT);

    if(sqlite3_step(stmt)){

        NSLog(@"yes yes");
    }else{
        NSLog(@"no  no");
    }

    sqlite3_finalize(stmt);
    sqlite3_close(delegate.db);  



}    

すべてのステップを通過するようですが、私のデータはまったく変更されていません。助けてください...SQLiteでこれらのレコードを挿入/置換できるようにするには、どのように呼び出し/コード化する必要がありますか?

4

1 に答える 1

-1
NSString *UpdateSql = [NSString stringWithFormat:@"Update ProvPuzz set desc2 = something"];
const char *sqlStatement = [UpdateSql UTF8String];  
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(filesDB, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {

        if(sqlite3_step(compiledStatement) == SQLITE_DONE) 
        {
            sqlite3_reset(compiledStatement);   

        }
    }
    // Release the compiled statement from memory
    sqlite3_reset(compiledStatement);   
    sqlite3_finalize(compiledStatement);
    sqlite3_close(filesDB);

また、db接続が正しく開かれているかどうかを確認してください

于 2012-06-22T05:14:10.990 に答える