1
DBにバイト(バイト[])を格納しようとしています。私は、バイトの配列、コンテンツプロバイダとデータベースを持っています。 Blobに挿入しようとすると、挿入が-1を返します。誰かが私にこのことをやり遂げる方法を教えてもらえますか?AndroidのSQL Blob
挿入
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);"); }
Iドン場合は私が言ったようにvalues.put(InDatabase.Columns.DATA, inData)
を置くと、完璧に動作します。
もう一つは、あなたのヘルパーのonUpgrade()関数を自動的に呼び出すようにDbHelperコンストラクタに渡すデータベースのバージョンをインクリメントすることです。 DBテーブルを削除してそこから再度onCreate()を呼び出すと、自動的にすべてを再作成できます。開発を少し楽にするもう1つのオプションがあります。 –