Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 30
1

Загрузка базы данных с SD карты

25.05.2016, 09:31. Показов 600. Ответов 6
Метки нет (Все метки)

Ребят, подскажите как реализовать загрузку готовой базы данных с расширение .bd в приложение с SD карты?
Я так понимаю загрузка происходит в assets, и потом уже происходит считывание ее?
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2016, 09:31
Ответы с готовыми решениями:

Загрузка базы данных из файла, в классе SQLite БД
Здравствуйте. Есть метод loadBDOfWordsToList(), который из текстового файла читает слова и...

Загрузка базы данных
Добрый день уважаемые старожилы!!! Дали сайт уже готовый, закинул его в денвер. Как прикрутить к...

Загрузка базы данных
Есть база данных (созданная в interbase) в которой есть например какое то количество таблиц,...

Загрузка данных з базы
Нужно зделать чтобы при нажатии на картинку выскакивало всплывающее окно! Как зделать это я знаю! А...

6
12 / 12 / 7
Регистрация: 04.04.2016
Сообщений: 51
25.05.2016, 09:46 2
Java
1
mDBHelper = new DBHelper(mContext, DB_FULL_NAME, null, DB_VERSION);
В DB_FULL_NAME можешь указать полный путь к базе данных на SD карте, и она откроется.
0
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 30
25.05.2016, 11:53  [ТС] 3
Задумка следующая, на Sd карте будет несколько BD, захожу в приложение жму кнопку, и выбираю на карте .bd файл, после чего его подгрузил, если надо выбрать другой файл следовательно, можно выбрать также его на Sd карте.
Реализовать через OpenFileDialog? Или есть еще какие варианты?
0
12 / 12 / 7
Регистрация: 04.04.2016
Сообщений: 51
25.05.2016, 15:48 4
Примерно вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    private void showBackupDialog(){
        String title = getResources().getString(R.string.title);
        ArrayList<String> list = new ArrayList<>();
        list = getListDBfiles();
        if (list != null) {
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.select_dialog_singlechoice, list);
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle(title)
                    .setSingleChoiceItems(adapter, -1, dialogClickListener)
                    .setPositiveButton(R.string.ok, dialogClickListener);
            AlertDialog alert = builder.create();
            alert.show();
        } else Toast.makeText(this, R.string.no_filesDB, Toast.LENGTH_LONG).show();
    }
 
    DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            ListView lv = ((AlertDialog) dialogInterface).getListView();
            if (i == Dialog.BUTTON_POSITIVE){
                Log.d(LOG_TAG, lv.getChildAt(lv.getCheckedItemPosition()).toString());
                TextView tv = (TextView) lv.getChildAt(lv.getCheckedItemPosition());
                Log.d(LOG_TAG, "Выбранная база данных " + tv.getText().toString());
                loadDBfiles(tv.getText().toString());
                Log.d(LOG_TAG, "Загрузка базы данных прошла успешно");
            }
        }
    };
0
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 30
11.07.2016, 11:25  [ТС] 5
Ребят помогите с реализацией задумки((( что то не могу разобраться(

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase;
import android.content.Context;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.File;
import java.sql.SQLException;
 
public class DatabaseHelper extends SQLiteOpenHelper {
 
    private static String DB_PATH = null;
    private static String DB_NAME = "Rostov1.db";
    private static final int SCHEMA = 1; // версия базы данных
    static final String TABLE = "LIST";
 
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_NAME = "site_name";
    public static final String COLUMN_YEAR = "number_nri";
    public SQLiteDatabase database;
    private Context myContext;
 
    public DatabaseHelper(Context context) {
        super(context, DB_NAME, null, SCHEMA);
        this.myContext=context;
        this.DB_PATH = "/data/data/" + context.getPackageName() + "/" + "databases/";
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion,  int newVersion) {
 
    }
 
    public void create_db(){
        InputStream myInput = null;
        OutputStream myOutput = null;
        try {
            File file = new File(DB_PATH + DB_NAME);
            if (!file.exists()) {
                this.getReadableDatabase();
                //получаем локальную бд как поток
                myInput = myContext.getAssets().open(DB_NAME);
                // Путь к новой бд
                String outFileName = DB_PATH + DB_NAME;
 
                // Открываем пустую бд
                myOutput = new FileOutputStream(outFileName);
 
                // побайтово копируем данные
                byte[] buffer = new byte[1024];
                int length;
                while ((length = myInput.read(buffer)) > 0) {
                    myOutput.write(buffer, 0, length);
                }
 
                myOutput.flush();
                myOutput.close();
                myInput.close();
            }
        }
        catch(IOException ex){
 
        }
    }
 
    public void open() throws SQLException {
        String path = DB_PATH + DB_NAME;
        database = SQLiteDatabase.openDatabase(path, null,
                SQLiteDatabase.OPEN_READWRITE);
 
    }
 
    @Override
    public synchronized void close() {
        if (database != null) {
            database.close();
        }
        super.close();
    }
}
Этот код который сейчас, копирование базы данных из ресурса assets.
КАК ЕГО ПЕРЕДЕЛАТЬ ЧТОБЫ БАЗА ДАННЫХ ЧИТАЛАСЬ ИЗ SD карты

Добавлено через 2 минуты
Т.е сейчас база данных Rostov1.db лежит допустим на SD карте в папке Download, как ее прочитать от туда? Просто указать путь?
0
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 30
13.07.2016, 11:21  [ТС] 6
Готов рассмотреть некоторое вознаграждения, люди ну пожалуйста=)
0
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
13.07.2016, 12:58 7
Java
1
2
3
4
5
6
7
8
9
10
        File source = new File(EXT_DIR.getAbsolutePath() + "/" + path);
        InputStream is = null;
        if (source.exists()) {
            try {
                is = new FileInputStream(source);
            }
            catch (FileNotFoundException e) {
                return null;
            }
        }
Где EXT_DIR = Environment.getExternalStorageDirectory();

Добавлено через 1 минуту
Готов рассмотреть некоторое вознаграждения
Так бы сразу и сказал ))
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2016, 12:58

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

Загрузка товаров из базы данных
Здравствуйте. Пытаюсь вывести товары из базы данных для дальнейшей работы с ними. &lt;?php ...

Загрузка изображений из базы данных
К примеру у меня есть несколько форм TImage. Как можно подгрузить изображения к примеру из ini...

Загрузка базы данных на сервер
У меня есть база данных MySQL локально, мне неообходимо загрузить её на сервер хостинга. Как это...

Загрузка XML из базы данных
Здравствуйте! Пытаюсь загрузить XML из ячейки базы данных,но при попытке загрузки и получения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.