Извлечение данных из базы данных SQLite в Android? - PullRequest
0 голосов
/ 04 марта 2019

Здесь я выбираю данные из SQLite в Android, но проблема в том, что в базе данных всего 20 столбцов, из которых 19 правильно выбирают столбец, но когда я выбираю последний 20-й столбец, весь массив [] пуст

Напримеркогда я пишу Query

SELECT NEW_ANIMAL_ID,TAG_NO,FARMER_ID,ANIMAL_EAR_POSITION,ANIMAL_SPECIES,ANIMAL_BREED,ANIMAL_BODY_COLOR,ANIMAL_SHAPE_RIGHT,ANIMAL_SHAPE_LEFT,ANIMAL_SWITCH_OF_TAIL,AGE_YEARS,ANIMAL_OTHER_MARKS,PRAG_STATUS,NUMBER_OF_LACTATION,CURRENT_MILK,SUM_INSURED,TAG_IMAGE,HEAD_IMAGE,LEFT_SIDE_IMAGE,RIGHT_SIDE_IMAGE  FROM  ANIMAL_SYNC_TABLE    ORDER BY  NEW_ANIMAL_ID   DESC

его выборка 19 столбцов полностью

, но когда я добавляю имя последнего столбца и пытаюсь получить его, отображается пустой массив []

Query = SELECT NEW_ANIMAL_ID,TAG_NO,FARMER_ID,ANIMAL_EAR_POSITION,ANIMAL_SPECIES,ANIMAL_BREED,ANIMAL_BODY_COLOR,ANIMAL_SHAPE_RIGHT,ANIMAL_SHAPE_LEFT,ANIMAL_SWITCH_OF_TAIL,AGE_YEARS,ANIMAL_OTHER_MARKS,PRAG_STATUS,NUMBER_OF_LACTATION,CURRENT_MILK,SUM_INSURED,TAG_IMAGE,HEAD_IMAGE,LEFT_SIDE_IMAGE,RIGHT_SIDE_IMAGE,TAIL_IMAGE_1  FROM  ANIMAL_SYNC_TABLE    ORDER BY  NEW_ANIMAL_ID   DESC

Вот код создания таблицы

db.execSQL("create table " + TABLE_NAME_ANIMAL_SYNC + "(NEW_ANIMAL_ID INTEGER PRIMARY KEY AUTOINCREMENT,FARMER_ID INT,TAG_NO TEXT,ANIMAL_EAR_POSITION TEXT,ANIMAL_SPECIES TEXT,ANIMAL_BREED TEXT,ANIMAL_BODY_COLOR TEXT,ANIMAL_SHAPE_RIGHT TEXT,ANIMAL_SHAPE_LEFT TEXT,ANIMAL_SWITCH_OF_TAIL TEXT,AGE_YEARS NUMBER,ANIMAL_OTHER_MARKS NUMBER,PRAG_STATUS NUMBER,NUMBER_OF_LACTATION NUMBER,CURRENT_MILK NUMBER,SUM_INSURED NUMBER,TAG_IMAGE BLOB NOT NULL,HEAD_IMAGE BLOB NOT NULL,LEFT_SIDE_IMAGE BLOB NOT NULL,RIGHT_SIDE_IMAGE BLOB NOT NULL,TAIL_IMAGE_1 BLOB NOT NULL)");

Вот код базы данных

 public List<DataModel> getAllData() {
        List<DataModel> data = new ArrayList<>();
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery("SELECT NEW_ANIMAL_ID,TAG_NO,FARMER_ID,ANIMAL_EAR_POSITION,ANIMAL_SPECIES,ANIMAL_BREED,ANIMAL_BODY_COLOR,ANIMAL_SHAPE_RIGHT,ANIMAL_SHAPE_LEFT,ANIMAL_SWITCH_OF_TAIL,AGE_YEARS,ANIMAL_OTHER_MARKS,PRAG_STATUS,NUMBER_OF_LACTATION,CURRENT_MILK,SUM_INSURED,TAG_IMAGE,HEAD_IMAGE,LEFT_SIDE_IMAGE,RIGHT_SIDE_IMAGE,TAIL_IMAGE_1  FROM  ANIMAL_SYNC_TABLE    ORDER BY  NEW_ANIMAL_ID   DESC", null);
        StringBuffer stringBuffer = new StringBuffer();
        DataModel dataModel = null;

        if (cursor.moveToFirst()) {
            do {
                dataModel = new DataModel();


                int NEW_ANIMAL_ID = cursor.getInt(cursor.getColumnIndexOrThrow("NEW_ANIMAL_ID"));
                String TAG_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("TAG_NO"));
                String FARMER_ID_1 = cursor.getString(cursor.getColumnIndexOrThrow("FARMER_ID"));
                String ANIMAL_EAR_POSITION_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_EAR_POSITION"));
                String ANIMAL_SPECIES_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_SPECIES"));
                String ANIMAL_BREED_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_BREED"));
                String ANIMAL_BODY_COLOR_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_BODY_COLOR"));
                String ANIMAL_SHAPE_RIGHT_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_SHAPE_RIGHT"));
                String ANIMAL_SHAPE_LEFT_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_SHAPE_LEFT"));
                String ANIMAL_SWITCH_OF_TAIL_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_SWITCH_OF_TAIL"));
                String AGE_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("AGE_YEARS"));
                String ANIMAL_OTHER_MARKS_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_OTHER_MARKS"));
                String PRAG_STATUS_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("PRAG_STATUS"));
                String NUMBER_OF_LACTATION_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("NUMBER_OF_LACTATION"));
                String CURRENT_MILK_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("CURRENT_MILK"));
                String SUM_INSURED_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("SUM_INSURED"));


                dataModel.setAnimal_id(NEW_ANIMAL_ID);
                dataModel.setFarmer_id(FARMER_ID_1);
                dataModel.setTag_no(TAG_COLUMN_1);
                dataModel.setEar_position(ANIMAL_EAR_POSITION_COLUMN_1);
                dataModel.setAnimal_species(ANIMAL_SPECIES_COLUMN_1);
                dataModel.setAnimal_breed(ANIMAL_BREED_COLUMN_1);
                dataModel.setBody_color(ANIMAL_BODY_COLOR_COLUMN_1);
                dataModel.setShape_right(ANIMAL_SHAPE_RIGHT_COLUMN_1);
                dataModel.setShape_left(ANIMAL_SHAPE_LEFT_COLUMN_1);
                dataModel.setTail_switch(ANIMAL_SWITCH_OF_TAIL_COLUMN_1);
                dataModel.setAge(AGE_COLUMN_1);
                dataModel.setOther_marks(ANIMAL_OTHER_MARKS_COLUMN_1);
                dataModel.setPrag_status(PRAG_STATUS_COLUMN_1);
                dataModel.setLactations(NUMBER_OF_LACTATION_COLUMN_1);
                dataModel.setMilk_qty(CURRENT_MILK_COLUMN_1);
                dataModel.setSum_insured(SUM_INSURED_COLUMN_1);
                dataModel.setTag_photo(Utils.getBitmapFromByte(cursor.getBlob(cursor.getColumnIndex("TAG_IMAGE"))));
                dataModel.setHead_photo(Utils.getBitmapFromByte(cursor.getBlob(cursor.getColumnIndex("HEAD_IMAGE"))));
                dataModel.setLeft_photo(Utils.getBitmapFromByte(cursor.getBlob(cursor.getColumnIndex("LEFT_SIDE_IMAGE"))));
                dataModel.setRight_photo(Utils.getBitmapFromByte(cursor.getBlob(cursor.getColumnIndex("RIGHT_SIDE_IMAGE"))));
                dataModel.setSwitch_Tail_Photo(Utils.getBitmapFromByte(cursor.getBlob(cursor.getColumnIndex("TAIL_IMAGE_1"))));


                stringBuffer.append(dataModel);
                data.add(dataModel);

            } while (cursor.moveToNext());

        }

        return data;
    }

Заранее спасибо !!!

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Измените свой запрос на этот

SELECT * FROM ANIMAL_SYNC_TABLE ORDER BY NEW_ANIMAL_ID DESC

, затем проверьте, существует ли проблема, чем загрузите приложение по этой ссылке, и откройте свою базу данных в этом приложении на своем компьютере, запустите запрос на вкладке «Выполнить sql» и проверьте запрос.правильно или нет

[https://sqlitebrowser.org/]

0 голосов
/ 07 марта 2019

База данных SQLITE имеет ограниченную поддержку больших двоичных объектов (BLOBS).Для каждой строки данных существует ограничение в 1 мегабайт, и база данных использует байты NUL для разделения столбцов в хранилище.... Содержит ссылку на отдельную таблицу BLOB-объектов.

0 голосов
/ 04 марта 2019

Измените ли вы свой код с

1002

на

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