Исключение Android SQLite: невозможно закрыть из-за незавершенных операторов

Я пишу приложение для управления покупками для Android и обнаружил ошибку при попытке закрыть одну из таблиц базы данных SQLite.

ItemsDb idb = new ItemsDb(this);

idb.open();

ArrayList<String> itemNames = idb.getItemNames();

for(int i=0; i < itemNames.size(); i++){

    String itemName = itemNames.get(i);

    String itemID = idb.getItemID(itemName);
    String itemName = idb.getItemNames().get(i);
    String itemPrices = idb.getItemPrices().get(i);
    String itemQuantity = idb.getItemQuantities().get(i);               
    String dateBought = idb.getDateBought(itemName);    
    String decayRate = idb.getDecayRate(itemName);
    String decayType = idb.getDecayType(itemName);
    String lastDecay = idb.getLastDecay(itemName);
    String prevQuantity = idb.getPreviousQuantity(itemName);
}

idb.close();

Этого не происходит с другими вызовами этого класса, поэтому мне интересно, происходит ли это из-за того, что здесь есть цикл с большим количеством обращений к базе данных. Ошибка Исключение SQLite: невозможно закрыть из-за незавершенных операторов .

Здесь находится строка с ошибкой из класса ItemsDb

    public ItemsDb(Context c){

        ourContext = c;
    }

    public ItemsDb open() throws SQLException{
        ourHelper = new DbHelper(ourContext);
        ourDatabase = ourHelper.getWritableDatabase();
        return this;
    }

    public void close(){
        ourHelper.close();
    }

По-видимому, в SQLite3 есть метод finalize для уничтожения предыдущих вызовов БД, но я не уверен, как это реализовать, или даже если это необходимо здесь.

Любая помощь по этому поводу была бы замечательной.

9
задан Jivings 19 February 2012 в 11:52
поделиться