我正在工作插入多个记录在数据库在同一时间
代码:-
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错误。
这实际上不是一个答案,而只是一些考虑。
-
你的代码看起来很好(意味着它应该在正常条件下工作)。
-
得到
net.rim.device.api.database.DatabaseException: disk I/O error
。这并没有说明确切的原因。DatabaseException
有3个子类,它们有定义的原因:-
DatabaseBindingException
-绑定SQL语句失败 -
DatabaseIOException
-数据库文件打开、创建、打开、创建、删除失败。 -
DatabasePathException
-表示数据库文件路径不正确。
-
由于您没有得到上述任何异常,因此无法定义实际原因。
的想法:
- 尝试另一张SD卡
- 复位(拔出电池)
- 尝试使用相同BB OS版本的其他设备
- 尝试运行其他BB OS版本的设备