在Blackberry I / O错误中插入多个记录

时间:2013-05-28 06:29:18

标签: blackberry

我正在同时在数据库中插入多个记录

这是代码: -

public synchronized boolean execute_Batch_Query(final JSONArray accObj) 
{
    boolean value = false;

    UiApplication.getUiApplication().invokeLater(new Runnable() 
    {
        public void run() 
        {
            String sqlStatement = "INSERT INTO Records_Table(id ,name ,description) " +"VALUES (?,?,?)";

            try 
            {
                JSONArray jsonArray = accObj;
                int size = jsonArray.length();
                Statement st = db.createStatement(sqlStatement);
                st.prepare();

                for(int i =0 ; i<size ; i++)
                {
                    JSONObject jsonObj = (JSONObject)jsonArray.getJSONObject(i);
                    String id = Global.EMPTY;
                    String name = Global.EMPTY;
                    String description = Global.EMPTY;
                    id      = jsonObj.getString("id");
                    name    = jsonObj.getString("name");
                    description = jsonObj.getString("description");
                    st.bind(1,id);
                    st.bind(2,name);
                    st.bind(3,description);

                    st.execute();
                    st.reset();


                }
                st.close();
                Log.d("SQL", sqlStatement);
            } 
            catch ( Exception e ) 
            {
                Log.e(e.getMessage());
            } finally {
                // close();
            }
        }
    });
    return value;
}

此代码一次插入10-15条记录,但在此之后,我得到了 磁盘I / O错误。请告诉我为什么我会收到I / O错误。

1 个答案:

答案 0 :(得分:1)

这实际上不是一个答案,只是一些考虑因素。

  1. 您的代码看起来没问题(意味着它应该在正常条件下工作)。

  2. 你得到net.rim.device.api.database.DatabaseException: disk I/O error。这并不能说明确切的原因。 DatabaseException有3个具有明确原因的子类:

    • DatabaseBindingException - 表示无法将参数绑定到SQL语句。
    • DatabaseIOException - 表示无法打开,创建,打开,创建或删除数据库文件。
    • DatabasePathException - 表示数据库文件的路径格式错误。
  3. 由于您没有得到上述任何例外情况,因此无法确定实际原因。

    思路:

    • 尝试另一张SD卡
    • 进行重置(取出电池)
    • 尝试使用相同BB OS版本的其他设备
    • 尝试运行其他BB OS版本的设备