Android SQL Blob - PullRequest
       10

Android SQL Blob

1 голос
/ 18 октября 2011

Я пытаюсь сохранить и массив байтов (байт []) в БД.У меня есть массив байтов, контент-провайдер и база данных.Когда я пытаюсь вставить в Blob, вставка возвращает -1.Может кто-нибудь показать мне, как это сделать.

Вставка

byte[] inData = nw.receive();
ContentValues values = new ContentValues();
values.put(InDatabase.Columns.DATA, inData);
values.put(InDatabase.Columns.SIZE, inData.length);
NetService.this.getContentResolver().insert(InContentProvider.CONTENT_URI, values);

Поставщик контента

mDB = mDBHelper.getWritableDatabase();
Long rowId = mDB.insert(mDBHelper.tableName(), null, aValues);

База данных


@Override 
public void onCreate(SQLiteDatabase db) { 
        db.execSQL("CREATE table " + TABLE_NAME + "(id INTEGER PRIMARY KEY AUTOINCREMENT, data BLOB, size INTEGER);"); 
}

Как я уже сказал, если я не поставлю values.put(InDatabase.Columns.DATA, inData), он отлично работает.

1 Ответ

0 голосов
/ 18 октября 2011

Таким образом, реализация была правильной, проблема была с SQLiteDatabaseHelper.Я не реализовал метод onUpdate ().Поскольку моя база данных уже существовала на устройстве с другим макетом (поле BLOB не существовало), метод вставки не удался.

Быстрая деинсталляция .apk устранила проблему.Я также мог бы реализовать метод onUpdate, чтобы при изменении версии базы данных происходило удаление или обновление таблицы.

...