【问题标题】:Reached max size for compiled sql statement cache for database problem related to query?已达到与查询相关的数据库问题的已编译 sql 语句缓存的最大大小?
【发布时间】:2011-05-16 23:30:57
【问题描述】:

朋友们,

我写了以下似乎是错误的 sqlite 插入语句。 在插入行之前,我正在检查记录是否存在然后不插入(ATM 数据超过 600 条记录)

已达到数据库的已编译 sql 语句缓存的最大大小。缓存中没有此 sql 语句的空间。从 atm 中选择 1,atmid=251 请更改您的 sql 语句以使用“?”对于绑定参数,而不是

public void addAtm(ATM atm)
    {

db.execSQL("INSERT INTO " + AtmsTable.NAME + 
        "(" +AtmsTable.COL_ID + ","
        +AtmsTable.COL_BankID +"," 
        + AtmsTable.COL_BankNAME+","
        + AtmsTable.COL_BankPhone+","
        + AtmsTable.COL_BankAddress+","
        + AtmsTable.COL_BankCoordinates+","
        + AtmsTable.COL_BankCity+","
        + AtmsTable.COL_BankWebaddress+") Values (" 
        +atm.getAtmID()+","
        +atm.getBankID()
        + ",'" + atm.getBankName().trim()
        +"','" + atm.getPhone()
        +"','" + atm.getAddress()
        +"','" + atm.getCoordinates()
        +"','" + atm.getCity()
        +"','" + atm.getWebAddress()+ "');");

}

和

public boolean atmExists(int atmId)
    {
        OpenIfNotOpened();
         Cursor cursor = db.rawQuery("select 1 from " + AtmsTable.NAME  +" where " + AtmsTable.COL_ID + "=" + atmId,null);
               boolean exists = (cursor.getCount() > 0);
               cursor.close();
               return exists;
    }

我收到以下错误消息

任何帮助将不胜感激。

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    public void execSQL (String sql)

    自:API 级别 1 执行单个 不是 SELECT 或 返回的任何其他 SQL 语句 数据。它没有办法返回任何 数据(例如受影响的人数 行)。相反,我们鼓励您 使用插入(字符串,字符串, 内容值),更新(字符串, 内容值、字符串、字符串 []) 等 al,如果可能的话。

    只需使用:

    ContentValues vals = new ContentValues();
    vals.put(AtmsTable.COL_BankID, atm.getBankID());
    vals.put(AtmsTable.COL_BankNAME, atm.getBankName().trim());
    /...
    if(db.update(AtmsTable.NAME, vals, AtmsTable.COL_ID + "=?", new String[]{Integer.toString(atm.getAtmID())}) == 0){
      vals.put(AtmsTable.COL_ID, atm.getAtmID());
      db.insert(AtmsTable.NAME, null, vals);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      • 2016-12-23
      • 1970-01-01
      相关资源
      最近更新 更多