1

SQLITEiPhoneアプリで使用しています。に値を挿入した後、メソッドdetailedViewControllerでデータベースからデータをリロードしています。masterViewController viewWillAppearただし、アプリケーションを再起動しない限り、新しく更新された行を取得できません。コンパイルされたステートメントをファイナライズし、 の後にデータベースを閉じていますINSERT

sqlite3_finalize(compiledStatement);
sqlite3_close(database);

どこで何か間違ったことをしている可能性があるかについての指針はありますか?

if(sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) {
        const char *sqlStatement = "SELECT * FROM MYCAR1";
        sqlite3_stmt *compiledStatement;
        if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {

            while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
                //...getting data from compiled statements...

                MyCar *car=[[MyCar alloc] initWithVIN:vin.intValue andMake:make andModel:model andYear:year andColor:color andImageData:image];
                [myArray addObject:car];
            }
        }
        sqlite3_finalize(compiledStatement);
        carList=myArray;
    }
    sqlite3_close(database);

    [self.tableView reloadData];
4

1 に答える 1

0

選択するための正確なコードを追加しました。これは私のために働いています。これをコードと比較して、エラーを把握してください。

sqlite3 *database;

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

    NSString *querySql=[NSString stringWithFormat:@"Select * from xxx"];

    const char *sqlStatement=[querySql UTF8String];

    sqlite3_stmt *compiledStatement;

    if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
        // Loop through the results and add them to the your array

        while(sqlite3_step(compiledStatement) == SQLITE_ROW)  {
           //get the data from db here                


        }

        sqlite3_finalize(compiledStatement);
    }

    sqlite3_close(database);
于 2013-04-04T08:03:53.810 に答える