Динамическое резервное копирование базы данных для определенных таблиц - PullRequest
2 голосов
/ 15 января 2011

Мне нужно сделать резервную копию только некоторых таблиц в моей основной базе данных.Остальные таблицы являются справочными и являются статическими, поэтому резервное копирование не требуется.

Я создал новую пустую БД, которая находится на SDCARD.Могу ли я получить доступ к БД непосредственно на SDCARD или мне нужно скопировать ее, когда она закончит резервное копирование?

Реальный вопрос в том, могу ли я перебирать поля в каждой записи в цикле или что-то, чтобы мне не пришлосьесть сотни строк кода, по одному на каждое поле.

В VB .NET я бы сделал что-то вроде

For X = 0 to RS.Fields.Count
 NewRS.Fields(x).value = Rs.Fields(x).value

и т. Д. ... Как это сделать в Android?

Ответы [ 2 ]

1 голос
/ 16 января 2011

Я написал класс, чтобы справиться с этим. Да, моя БД справлена ​​как минимум на 95% ...

Вот код кишки:

Cursor c = DbBak.rawQuery(Sql, null);
            String Cn[] = c.getColumnNames();

            if (c != null ) {
                if  (c.moveToFirst()) {
                    do {
                        for ( x=0; x< c.getColumnCount(); x++)
                        {
                            newRow.put(Cn[x].toString(), c.getString(x));
                        }

                        Db.insert(TableName,  null, newRow);

                    }while (c.moveToNext());
0 голосов
/ 15 января 2011

Если ваши ссылочные таблицы не составляют 95% размера вашей базы данных, я просто скопировал бы файл базы данных, используя стандартный ввод-вывод файлов Java, пока база данных закрыта.Это будет значительно быстрее, чем пытаться отбрасывать данные по ячейкам за раз.

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