Форум программистов, компьютерный форум CyberForum.ru

Чтение данных из базы - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Быстрый просчет невидимых в камере объектов http://www.cyberforum.ru/android-dev/thread1313999.html
Здравствуйте! Не знаю, в какой раздел отнести эту тему, т.к. пишу на java for Android, создал здесь Собственно вопрос, пожалуй, нубский... пишем движок игровой и возникла необходимость быстро определить, какие прямоугольники не попадают в камеру, область камеры представляет собой прямоугольник с шириной, высотой и точкой фиксации в системе координат, аналогично заданы все прямоугольники......
Обо всем! Какое мобильное приложение порвет рынок России? Какое мобильное приложение порвет рынок России? Скидывайте мысли ))) http://www.cyberforum.ru/android-dev/thread1313965.html
Загрузить картинку в layout Android
Доброго времени суток! У меня такая проблема ! Я загружаю из ресурса drawable картинку вот такам образом! imgView = (ImageView) findViewById(R.id.imageView1); imgView.setImageBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.decasan)); А как загрузить в layout просто в layoyt нет свойства setImageBitmap! возможно есть альтернативный способ
Отследить активность приложения Android
Рут есть. Нужно делать скриншоты при активности определенного приложения. Перелопачивать все логи нонстоп - слишком энергозатратно. Как заставить logcat выдавать events только определенных приложений? Пробовал "logcat -b events MyApp:I *:S" - ничего не выдает. Или как еще можно отследить активность приложения?
Android Узнать запущен ли сервис http://www.cyberforum.ru/android-dev/thread1313536.html
Я хочу из приложения запускать сервис. Но чтобы не запускать его дважды мне как то надо узнать запущен ли он уже или нет. Подскажите как это можно сделать?
Android Проигрывание буфера (массива) Здравствуйте! Подскажите пожалуйста, каким классом можно проиграть массив short с данными в нем, а не файл или ресурс? Спасибо! подробнее

Показать сообщение отдельно
hornet2319
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 3

Чтение данных из базы - Android

29.11.2014, 11:30. Просмотров 627. Ответов 2
Метки (Все метки)

Доброго времени суток ув. форумчане!
Возникла проблема при попытке прочитать данные из БД, которая сохранена в external storage. Помогите разобраться в чем беда ибо мне кажется что я уже все перепробовал. При попытке чтения выдает ошибку, хотя все вроде правильно.
код для инициализации бд:
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
public class DataBaseHelper extends SQLiteOpenHelper
{
private static String TAG = "DataBaseHelper"; // Tag just for the LogCat window
//destination path (location) of our database on device
private static String DB_PATH = "/mnt/sdcard/Android/data/nutrition/"; 
private static String DB_NAME ="nutrition_db.sqlite";// Database name
private SQLiteDatabase mDataBase; 
private final Context mContext;
 
public DataBaseHelper(Context context) 
{
    super(context, DB_NAME, null, 1);// 1? its Database Version
  
    this.mContext = context;
}   
 
public void createDataBase() throws IOException
{
    //If database not exists copy it from the assets
 
    boolean mDataBaseExist = checkDataBase();
    if(!mDataBaseExist)
    {
        this.getReadableDatabase();
        this.close();
        
        
        try 
        {
            //Copy the database from assests
            copyDataBase();
            Log.e("DataBase", "Database copied");
        } 
        catch (IOException mIOException) 
        {
            throw new Error("ErrorCopyingDataBase");
        }
    }
}
    //Check that the database exists here: /data/data/your package/databases/Da Name
    private boolean checkDataBase()
    {
        File dbFile = new File(DB_PATH + DB_NAME);
        
        Log.v("dbFile", dbFile + "   "+ dbFile.exists());
        
        return dbFile.exists();
    }
 
    //Copy the database from assets
    private void copyDataBase() throws IOException
    {
        InputStream mInput = mContext.getAssets().open(DB_NAME);
        String outFileName = DB_PATH + DB_NAME;
        OutputStream mOutput = new FileOutputStream(outFileName);
        byte[] mBuffer = new byte[1024];
        int mLength;
        while ((mLength = mInput.read(mBuffer))>0)
        {
            mOutput.write(mBuffer, 0, mLength);
        }
        mOutput.flush();
        mOutput.close();
        mInput.close();
    }
 
    //Open the database, so we can query it
    public boolean openDataBase() throws SQLException
    {
        String mPath = DB_PATH + DB_NAME;
        Log.v("mPath", mPath);
        
        mDataBase = SQLiteDatabase.openDatabase(mPath, null, SQLiteDatabase.OPEN_READONLY);
        return mDataBase != null;
    }
небольшой адаптер с запросами для работы с бд:

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
85
86
87
88
89
90
91
92
93
94
public class DBAdapter 
{
    protected static final String TAG = "DataAdapter";
 
    private final Context mContext;
    private SQLiteDatabase mDb;
    private DataBaseHelper mDbHelper;
    
 
    // Table Names
    private static final String TABLE_FOOD="Food";
    private static final String TABLE_CATHEGORIES = "Cathegory";
    private static final String TABLE_FOOD_CATH = "FoodCath";
 
    // Common column names
    private static final String KEY_ID = "id";
    
    // Food Table - column names
    private static final String FOOD_NAME = "Name";
    private static final String FOOD_CALORIES = "Calories";
    private static final String FOOD_PROTEINS = "Proteins";
    private static final String FOOD_FATS = "Fats";
    private static final String FOOD_HYDROCARBONATES = "Hydrocarbonates";
 
    // Cathegory Table - column names
    private static final String CAT_NAME = "CatName";
 
    // FoodCath Table - column names
    private static final String FC_FOOD_ID = "FoodID";
    private static final String FC_CAT_ID = "CathID"; 
 
    public DBAdapter(Context context) 
    {
        this.mContext = context;
        mDbHelper = new DataBaseHelper(mContext);
    }
 
    public DBAdapter createDatabase() throws SQLException 
    {
        try 
        {
            mDbHelper.createDataBase();
        } 
        catch (IOException mIOException) 
        {
            Log.e(TAG, mIOException.toString() + "  UnableToCreateDatabase");
            throw new Error("UnableToCreateDatabase");
        }
        return this;
    }
 
    public DBAdapter open() throws SQLException 
    {
        try 
        {
            mDbHelper.openDataBase();
            mDbHelper.close();
            mDb = mDbHelper.getReadableDatabase();
        } 
        catch (SQLException mSQLException) 
        {
            Log.e(TAG, "open >>"+ mSQLException.toString());
            throw mSQLException;
        }
        return this;
    }
 
    public void close() 
    {
        mDbHelper.close();
    }
    
    public ArrayList<Food> getFoodByName(String name){
        ArrayList<Food> foods = new ArrayList<Food>();
 
     String selectQuery = "SELECT  * FROM " + TABLE_FOOD + " WHERE " + FOOD_NAME + " LIKE '" +name+"%'" ;
  
        Cursor c = mDb.rawQuery(selectQuery, null);
        
     
        if (c.moveToFirst()) {
            do {
        Food food = new Food();
        food.setFood_id(c.getInt(c.getColumnIndex(KEY_ID)));
        food.setFoodName((c.getString(c.getColumnIndex(FOOD_NAME))));
        food.setFood_calories(c.getLong(c.getColumnIndex(FOOD_CALORIES)));
        food.setFood_proteins(c.getFloat(c.getColumnIndex(FOOD_PROTEINS)));
        food.setFood_fats(c.getFloat(c.getColumnIndex(FOOD_FATS)));
        food.setFood_hydrocarbonates(c.getFloat(c.getColumnIndex(FOOD_HYDROCARBONATES)));
        foods.add(food);
            } while (c.moveToNext());
        }
        return foods;
    }
Логи:
Кликните здесь для просмотра всего текста
V/dbFile(8860): /mnt/sdcard/Android/data/nutrition/nutrition_db.sqlite true
(true в конце результат проверки существует ли файл)
I/SqliteDatabaseCpp(8860): sqlite returned: error code = 1, msg = no such table: Food, db=/mnt/sdcard/Android/data/nutrition/nutrition_db.sqlite
E/AndroidRuntime(8860): at nutrition.logic.DBAdapter.getFoodByName(DBAdapter.java:78)
E/AndroidRuntime(8860): at nutrition.activities.FoodChoosingActivity$DBTask.doInBackground(FoodChoosingActivity.java:82)

Скрин моей бд чтобы вы убедились что таблица Food там все же присутствует:
также попытаюсь загрузить саму бд, может причина все-таки в ней
Кликните здесь для просмотра всего текста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru