Blackberry无法准备已准备好的语句异常



在blackberry sqlite中执行以下代码时,i得到异常"无法准备已准备好的语句"

public Department[] getDepartment()
{
    Department[]  department = null;
    try
    {         
        database = DatabaseFactory.open(myURI);         
        Statement st = database.createStatement("SELECT code, name, status FROM Department");          
        st.prepare();
        Cursor c = st.getCursor();           
        Row r;
        int i = 0;
        department = new Department[i];
        while(c.next()) 
        {
            r = c.getRow();
            i++;
            Department dept = (Department) r.getObject(i);
            department[i] = dept;               
        }
        st.close();
        database.close();
    }
    catch ( Exception e ) 
    {         
        System.out.println("Exception occured --------------" +e.getMessage());
    }    
    return department;
}

任何人都知道这个的解决方案

st.prepare()只有在语句未准备好的情况下才是必需的,这意味着:

  • 语句引用外部变量
  • 语句引用一个计算变量

在这种情况下,两者都不是,因此该语句是多余的。

参考

  • SQLite:文件历史-准备.c

  • 启用缓存时收到"重新准备已准备好的查询"警告·Issue#581·Netflix/astyanax·GitHub

  • SQLite:查看票证-重新准备错误总是作为SQLite_SCHEMA 返回

最新更新