2012-08-13 16 views
5

Tengo una aplicación que funciona bien en BlackBerry OS 7.0, pero cuando ejecuto la misma aplicación en BlackBerry OS 6.0, el cursor SqLite llega al final de los datos de inmediato, por lo que no puedo obtener cualquier dato de la base de datos.Sqlite Cursor breaks en BlackBerry OS 6

public static Vector GetProducts(String sysID) { 
    Bitmap img = null; 
    try { 
    Statement st = d 
    .createStatement("SELECT * FROM Product where systemSerID=?"); 
    st.prepare(); 
    st.bind(1, sysID); 
    st.execute(); 
    Cursor c = st.getCursor(); 

    Products products; 
    Vector pro = new Vector(); 

    while (c.next()) { 

    Row r = c.getRow(); 
    products = new Products(); 
    products.setSystemServiceID(r.getString(1)); 
    products.setSystemServiceName(r.getString(2)); 
    products.setProductID(r.getString(3)); 
    products.setProductName(r.getString(4)); 
    products.setProductDesc(r.getString(5)); 

    products.setProductType(r.getString(devil)); 
    // products[i].setProductType("1"); 
    products.setBatchID(r.getString(7)); 
    products.setMinValue(r.getString(music)); 
    products.setMaxValue(r.getString(9)); 
    products.setImageURL(r.getString(10)); 

    System.out.println(" retrived from database."); 
    pro.addElement(products); 
    } 

    c.close(); 
    st.close(); 
    return pro; 

    } catch (DatabaseException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    return null; 

    } catch (DataTypeException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    return null; 
    } 

} 

Respuesta

3

El documentation for Database dice:

Si la declaración podría devolver resultados, ejecute el comando mediante Statement.getCursor(). Statement.execute() - Úselo cuando desee preparar y cerrar explícitamente el extracto.

Dado que desea acceder a un conjunto de resultados, no debe llamar a Statement.execute(). getCursor() hace que la consulta se ejecute, por lo que debería poder eliminar la llamada a execute() para obtener el comportamiento que desea.

+0

Muchas gracias ... Ahora funciona perfectamente en OS 6 .. Gracias una vez más .. –

Cuestiones relacionadas