0
이미지를 BLOB 형식으로 저장하려고합니다. 나는 그것이 옳다는 것이 확실하지 않다. 디버깅 할 때 fetchAllItems() 및 fetchItem()이 작동하지 않습니다. 오류가 있습니까? 나는 그것을 전혀 발견 할 수 없다 .. 블로 브에 문제가 없기 때문에 오래 코딩하기 위해 죄송합니다. 도와주세요. 감사합니다 ...Sqlite 이미지를 blob로 저장
여기에 오류 메시지가 있습니다. 12-02 20 : 38 : 26.291 : I/데이터베이스 (22251)은 : sqlite가 반환 : 오류 코드 = 1, MSG = 그런 칼럼 : 영상이 그것을 해결하지만 노력할 것입니다 경우
public class FridgeDatabaseHelper extends SQLiteOpenHelper
{
private static final String DATABASE_NAME = "fridge_db";
private static final int DATABASE_VERSION = 1;
//Database creates through sql statement
private static final String DATBASE_CREATE = "create table fridge_table " +
"(_id integer primary key autoincrement, " +
"category text not null, name text not null, "+"" +
"expired_date text not null, image BLOB);";
public FridgeDatabaseHelper(Context ctxt)
{
//we can put database file name on 'DATABASE_NAME'
super(ctxt, DATABASE_NAME, null, DATABASE_VERSION);
}
//onCreate method
@Override
public void onCreate(SQLiteDatabase db)
{
//Method is called during creation of the database
db.execSQL(DATBASE_CREATE);
}
//Database fields
public static final String KEY_ROWID = "_id";
public static final String KEY_CATEGORY = "category";
public static final String KEY_NAME = "name";
public static final String KEY_EXPIRED_DATE = "expired_date";
public static final String KEY_IMAGE = "image";
private static final String DATABASE_TABLE = "fridge_table";
private Context ctxt;
private SQLiteDatabase db;
private FridgeDatabaseHelper dbhelper;
//SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-YYYY HH:mm:ss");
public FridgeDbAdapter(Context ctxt)
{
this.ctxt = ctxt;
}
//Open database
public FridgeDbAdapter open() throws SQLException
{
dbhelper = new FridgeDatabaseHelper(ctxt);
db = dbhelper.getWritableDatabase();
return this;
}
//Close database
public void close(){
dbhelper.close();
}
//Create a new item
public long insertItem(String category, String name, String expired_date, byte[] image)
{
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_CATEGORY, category);
initialValues.put(KEY_NAME, name);
initialValues.put(KEY_EXPIRED_DATE, expired_date);
initialValues.put(KEY_IMAGE, image);
return db.insert(DATABASE_TABLE, null, initialValues);
}
//return cursor over the list of all items in the database
public Cursor fetchAllItems(){
return db.query(DATABASE_TABLE, new String[]
{KEY_ROWID, KEY_CATEGORY, KEY_NAME, KEY_EXPIRED_DATE, KEY_IMAGE},
null, null, null, null, null);
}
//return a cursor positioned at the defined item
public Cursor fetchItem(long rowId) throws SQLException
{
Cursor mCursor = db.query(true, DATABASE_TABLE,
new String[]{KEY_ROWID, KEY_CATEGORY, KEY_NAME, KEY_EXPIRED_DATE, KEY_IMAGE},
KEY_ROWID + "=" + rowId, null, null, null, null, null);
//byte[] image = null;
if(mCursor != null){
mCursor.moveToFirst();
//image = mCursor.getBlob(mCursor.getColumnIndexOrThrow(KEY_IMAGE));
}
return mCursor;
}
아 .. 데이터베이스를 업데이트하여 해결했습니다. 감사. 그러나, 나는 다시 이미지를 저장하는 붙어있어. 카메라에서 그림을 선택하여 저장하면 목록보기에서 두 번 항목을 한 번만 만들 수 없습니다. 첫 번째 사진은 여전히 사진을 표시하지 않지만 두 번째 사진은 최종적으로 선택한 사진으로 표시되지만 이미지를 수정할 수는 없습니다 .. – wholee1
데이터베이스를 업데이트 할 때 무엇을 변경해야합니까? 이미지를 수정할 수 없다고 말하면 데이터베이스의 레코드를 어떻게 업데이트합니까? – Chris
때때로 이미지가 저장되지만 때로는 저장되지 않습니다. 나는 정말로 궁금해하고있다. 전자 메일로 코드를 제공 할 수 있습니까? 나 한테 확인해 줄래? 나는 그것을 정말로 유감스럽게 생각한다. 나는 지금까지 강조되고있다. 가능한 경우 이메일을 보내 주시겠습니까? 감사.. – wholee1