sql lite表是否有一些行限制?
当该表有超过6000行时,我的应用程序给出错误“没有这样的表x …”.
低于6000行,不要给出任何错误.
当该表有超过6000行时,我的应用程序给出错误“没有这样的表x …”.
低于6000行,不要给出任何错误.
谢谢.
这是查询.
db = (new DatabaseHelper(this)).getWritableDatabase(); cursor = db.rawQuery("SELECT continentes._id,continentes.ContinenteID,continentes.Continente" + " FROM continentes" + " WHERE continentes.Continente LIKE ?" + " GROUP BY continentes.ContinenteID,continentes.Continente ORDER BY continentes.Continente",new String[]{"%" + searchText.getText().toString() + "%"});
这是我创建表的地方
@Override public void onCreate(sqliteDatabase db) { String s; try { Toast.makeText(context,"Creating Database",2000).show(); InputStream in = context.getResources().openRawResource(R.raw.continentes); DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc = builder.parse(in,null); NodeList statements = doc.getElementsByTagName("statement"); for (int i=0; i<statements.getLength(); i++) { s = statements.item(i).getChildNodes().item(0).getNodeValue(); db.execsql(s); } } catch (Throwable t) { Toast.makeText(context,t.toString(),50000).show();
解决了 !!!我只是想知道为什么我遇到这个问题.因为我使用Data创建和填充sql数据库的文件,不能超过1.2mb.所以,我把他们分开了,没有更多的问题.谢谢大家.
解决方法
您可以获得有关
limits of SQLite的标准信息,但这不会导致您的问题,因为限制实际上非常高. (2到64的力量!)
您的问题很可能与您的应用程序插入记录和/或插入的记录类型有关.
你可以发布一些应用程序的代码以及它如何处理插入?阅读完之后我可以修改我的答案.
作为补充提示,请确保您已设置:
Cursor myCursor = db.rawQuery("PRAGMA synchronous=OFF",null); myCursor.close();
因为这可以真正实现improve the performance的大型批量插件.