2012-07-27 3 views
0

나는이 guide 데이터베이스 (ID, 텍스트, BLOB 데이터)를 사용하여 테이블에 대한 db 액세스에 대한, bolb는 배열입니다 사용이 코드는 바이트,하지만 불행히도 :Sqlite 안드로이드 응용 프로그램에서 (BLOB 데이터) 삽입 할 수 없습니다

long insertId = database.insert(MySQLiteHelper.TABLE_COMMENTS, null, values); 

insertId 항상 -1을 반환하고 내가 이해하지 못하는 오류가 있습니다! -> 바이트 [] 배열 (TXT -이 블롭 바이트 테이블에 삽입로서 나 파일에 TXT 파일을 변환 할 수

private static final String DATABASE_CREATE = "create table " 
     + TABLE_COMMENTS + "(" + COLUMN_ID 
     + " integer primary key autoincrement, " + COLUMN_COMMENT 
     + " text not null,"+ MOVE + "blob" + ");"; 

알고리즘 :

테이블이있다 -> 블롭)

public byte[] ConvertByte() 
{ 
    byte[] b = new byte[1024]; 
    int bytesRead =0; 
    byte[] dataToSave = null; 
    ByteArrayOutputStream bos = null; 
    try { 
     InputStream is = new FileInputStream(FileName); 
     bos = new ByteArrayOutputStream(); 
     while ((bytesRead = is.read(b)) != -1) { 
      bos.write(b, 0, bytesRead); 
     } 
     byte[] bytes = bos.toByteArray(); 
     dataToSave = Base64.encode(bytes, Base64.DEFAULT); 
    } catch (IOException e) { 
     Toast.makeText(getBaseContext(), e.getMessage(), 
        Toast.LENGTH_SHORT).show(); 
     } 
return dataToSave; 
} 

답변

0

당신은 BLOB 데이터 등 일반 String을 삽입하는 옵션을 생각 해 봤나?

Base64.encode() 함수에는 String 값을 반환하는 대체 함수가 있습니다. 또한 BLOB 데이터를 테이블에 삽입하고이 대안을 사용하여 매력처럼 작동했습니다.

+0

문자열과 작동하지 않습니다! 같은 오류 – user1547027

관련 문제