Android - Как экспортировать таблицы с именами из другой таблицы в .CSV? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть база данных с большим количеством таблиц.И в одной из этих таблиц хранятся имена некоторых таблиц.

Я хотел бы экспортировать только те таблицы, имена которых в этой таблице содержат имена.

Например: StoreTable хранит именаA, B, C.

В моей базе данных есть таблицы A, B, D, E, F.

При экспорте метод экспортирует только таблицы A и Bпотому что их имя находится в StoreTable.

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

Код, который я уже сделал, экспортирует все таблицы из базы данных, это ниже:

@TargetApi(Build.VERSION_CODES.M)
    public void exportTableFiltered(SQLiteDatabase db, String tableName) {

        if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {

            try {
                //Query
                Cursor cursor = db.rawQuery("SELECT * FROM \"" + tableName + "\"", null);

                exportDir = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/EXPORTED/");

                if (!exportDir.exists())
                {
                    exportDir.mkdirs();
                }

                File file = new File(exportDir, tableName +".csv");
                file.createNewFile();

                CSVWriter csvWriter = new CSVWriter(new FileWriter(file.getAbsoluteFile(), true));

                //Writes content into .CSV
                while(cursor.moveToNext()) {

                    //just columm 1
                    String arrStr[] = { cursor.getString(1)};
                    csvWriter.writeNext(arrStr);
                }

                //Close
                cursor.close();
                csvWriter.close();

            } catch (Exception e) {

                Toast.makeText(this, "Catch 04: " + e.getMessage(), Toast.LENGTH_LONG).show();
            }

        }

        else {

            requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);

        }

        Toast.makeText(getApplicationContext(), "CSV FILE GENERATED!!", Toast.LENGTH_SHORT).show();

    }

Спасибо!

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