【问题标题】:Error while inserting blob data into sqlite on android在android上将blob数据插入sqlite时出错
【发布时间】:2012-03-12 20:05:58
【问题描述】:

我想将 blob 数据存储到 sqlite 中,尽管 bloc 具有价值,但它将 imageData 添加为 null。我应该将什么 bloc 值放入 sql 中?

String x = getResultAsOnlyValue("soapImage", xdata);
byte[] bloc = Base64.decode(x, Base64.DEFAULT);
Bitmap bmp = BitmapFactory.decodeByteArray(bloc,0,bloc.length);
SQLiteStatement statement =  db.compileStatement("insert into ImageTable (imageData) values(?)"); 
statement.bindBlob(0, bloc); 
statement.execute();

【问题讨论】:

    标签: android sqlite blob


    【解决方案1】:

    已编辑:问题的答案

    String x = getResultAsOnlyValue("soapImage", xdata);
    byte[] bloc = Base64.decode(x, Base64.DEFAULT);
    Bitmap bmp = BitmapFactory.decodeByteArray(bloc,0,bloc.length);
    SQLiteDatabase db = getDb();
    ContentValues values = new ContentValues();
    values.put("ImageData", bloc);
    db.insert("imageTable", null, values);
    

    在此操作之后,如果您在尝试通过 sqlitemanager 运行数据库时遇到 NS_ERROR_FILE_CORRUPTED 错误,这意味着您需要将您的数据库升级到 sqlite3。 In this link 它告诉你如何做到这一点。

    【讨论】:

      【解决方案2】:

      早上好,试试这个答案:Convert Drawable to BLOB Datatype

      我想这就是你要找的东西。

      【讨论】:

      • 实际上我猜这个问题与 sqlitemanager 版本有关,因为它在添加 blob 数据后抛出“NS_ERROR_FILE_CORRUPTED”错误。经过一番谷歌搜索后,我发现了这个常见问题解答,“我在尝试打开/连接到 sqlite db 文件时遇到错误。为什么?”如果您收到错误,警报会显示异常名称:NS_ERROR_FILE_CORRUPTED。这可能是由于 (a) 您正在打开的文件不是 sqlite db 文件,或者 (b) 您正在尝试打开使用较旧的 sqlite 库创建的 sqlite db 文件要从 sqlite2 转换为 sqlite3,请按照Convert_sqlite2_to_sqlite3_format 中的说明
      猜你喜欢
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 2014-05-02
      相关资源
      最近更新 更多