Как записать массив в базу данных sqlite для Objective-C? - PullRequest
3 голосов
/ 13 марта 2010

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

Как вставить массив данных в базу данных?

Ответы [ 2 ]

2 голосов
/ 13 марта 2010

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

// Assuming you have the sqlite database opened already
// sqlite3 *sqldb = ...;

// Also assuming you have an array of MyItems holding your data
// NSMutableArray *items = ...;

sqlite3_stmt *insert_statement;

// Prepare the insert statement
const char*sql = "INSERT INTO mytable (field1, field2, field3) VALUES(?,?,?)";
sqlite3_prepare_v2(sqldb, sql, -1, &insert_statement, NULL);

// Iterate over an array of dictionaries
for (MyItem *item in items) {

    // Bind variables - assumed to all be integers
    sqlite3_bind_int(insert_statement, 1, item.field1);
    sqlite3_bind_int(insert_statement, 2, item.field2);
    sqlite3_bind_int(insert_statement, 3, item.field3);

    // Execute the insert
    if (sqlite3_step(insert_statement) != SQLITE_DONE) {
        NSLog(@"Insert failed: %s", sqlite3_errmsg(sqldb));
    }

    // Reset the statement
    sqlite3_reset(insert_statement);
}

// release the statement
sqlite3_finalize(insert_statement);
0 голосов
/ 13 марта 2010

Переберите содержимое массива и создайте запрос INSERT.

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