Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: копирование БД (SQLite)
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
call_me_Frank
Привет! подскажите, пожалуйста, ребята, как осуществить копирование одной БД SQLite в другую (тоже SQLite)?

я сделал так - перечисляю таблицы в одной БД, и пробую переносить по одной записи через QSqlTableModel, вот код:

    for (it = tables.constBegin(); it != tables.constEnd(); ++it){
        //

        QString tn = *it;

        model1.setTable(tn);
        model1.select();

        model2.setTable(tn);
        model2.select();

        for (int j = 0; j < model1.rowCount(); j++){
            //

            QSqlRecord rec = model1.record(j);

            model2.insertRows(j, 1);
            model2.insertRecord(j, rec);

            /*for (int k = 0; k < rec.count(); k++){
                //

                model2.setData(model2.index(j, k),
                               dec(rec.value(k).toString()));
            }*/
        }

        model2.submitAll();
    }


однако, этот код не работает, почему, я не могу понять.
crashsp
На мой взгляд не самый правильный подход в цикле делать setTable(tn) потом select() для двух таблиц; а потом опят же в цикле insertRecord(j, rec) по одной записи.
думаю лучше руками через QSqlQuery получить данные, засунуть их QStringList и отправить одним пакетом, см bool QSqlQuery::execBatch ( BatchExecutionMode mode = ValuesAsRows )
Но все же если решите делать как делали посмотри исходник может чего не хватает.
call_me_Frank
Спасибо, crashsp!...свой исходник я все-таки запустил, нашел почему не работало. Сейчас оставлю этот вариант, а на будущее обязательно посмотрю, что за execBatch такой)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.