как экспортировать и импортировать выбранные таблицы или полную БД из базы данных sqlite в nativescript в csv или другом формате

Я пытаюсь экспортировать всю базу данных sqlite в одном случае и только выбранные таблицы в другом случае нажатием кнопки для проекта (функция резервного копирования). Я искал то же самое, но, похоже, отрицательный ответ. Для этого я использую плагин https://github.com/NathanaelA/nativescript-sqlite . Также необходимо импортировать экспортированную базу данных с помощью средства выбора файлов или другого. Прямо сейчас я пытаюсь достичь его, используя java-код с nativescript, ссылаясь на https://stackoverflow.com/a/49146471/8750174. Любая помощь с помощью nativescript будет оценена по достоинству. Заранее спасибо.

let is = java.io.InputStream = null;
let os = java.io.OutputStream = null;

try {
    is = new java.io.FileInputStream('/data/data/org.nativescript.Aads/databases/mydatabse.db');
    os = new java.io.FileOutputStream('/storage/emulated/0/aads_Backup/dbincsvformat.csv');

    const buffer = Array.create('byte', 4096);

    while ((is.read(buffer).length) > 0) {
        os.write(buffer, 0, length);
    }
} catch (e) {
    this.errorService.handleError(e);
} finally {
    console.log('copy done');
    is.close();
    os.close();
}

person Vikas Acharya    schedule 06.03.2019    source источник


Ответы (1)


CSV - это не что иное, как значения, разделенные табуляцией или запятыми в текстовом файле. {N} имеет свой кроссплатформенный модуль файловой системы, поддерживает чтение / запись в файл.

Все, что вам нужно сделать, это передать строку, разделенную запятыми, в метод writeText / writeTextSync.

Что-то типа,

const documents = fileSystemModule.knownFolders.documents();
const file = documents.getFile("test.csv");
file.writeTextSync(`1,2,3\n\r4,5,6`);
person Manoj    schedule 06.03.2019
comment
это работало отлично. но как преобразовать test.db в значение, разделенное запятыми. - person Vikas Acharya; 06.03.2019
comment
Это простая задача с JavaScript: преобразовать массив значений для каждой строки в строку. Вы можете использовать метод .join(","). - person Manoj; 06.03.2019
comment
нет, я не спрашиваю об этом. У меня есть файл test.db, загруженный из Интернета. теперь я хочу преобразовать этот файл .db в csv. так что в соответствии с вашим руководством я могу преобразовать массив в csv, но как преобразовать .db в массив. извините, если я ошибаюсь в концепции ...! Я застрял здесь на 2 дня. - person Vikas Acharya; 07.03.2019
comment
Используйте плагин sqlite. - person Manoj; 07.03.2019
comment
Я проверил sqlite и почти поиграл с ним. но я все еще не понимаю, что делать. мне нужно читать таблицу за таблицей и конвертировать каждую? или есть какой-нибудь простой способ. и Sqlite.copyDatabase () этот метод сбивал с толку, нет документации и не знаю, как его использовать. не могли бы вы дать более подробную информацию о преобразовании файла .db в .csv - person Vikas Acharya; 07.03.2019