2012-08-13 17 views
5

में स्क्लाइट कर्सर ब्रेक करता है मेरे पास एक ऐसा एप्लिकेशन है जो ब्लैकबेरी ओएस 7.0 के तहत ठीक चलता है, लेकिन जब मैं ब्लैकबेरी ओएस 6.0 के तहत एक ही एप्लीकेशन चलाता हूं, तो SQLite कर्सर तुरंत डेटा के अंत तक पहुंच जाता है, इसलिए मैं नहीं कर सकता डेटाबेस से किसी भी डेटा प्राप्त करें।ब्लैकबेरी ओएस 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; 
    } 

} 

उत्तर

3

documentation for Database का कहना है: वक्तव्य परिणाम वापस, Statement.getCursor फोन करके वक्तव्य चला सकता है

हैं()। Statement.execute() - जब आप स्पष्ट रूप से वक्तव्य तैयार करना और बंद करना चाहते हैं तो इसका उपयोग करें।

चूंकि आप परिणाम सेट तक पहुंचना चाहते हैं, तो आपको Statement.execute() को कॉल नहीं करना चाहिए। getCursor() क्वेरी निष्पादित करने का कारण बनता है, इसलिए आप इच्छित व्यवहार प्राप्त करने के लिए निष्पादन() कॉल को हटाने में सक्षम होना चाहिए।

+0

बहुत बहुत धन्यवाद .. अब यह ओएस 6 में पूरी तरह से चल रहा है .. धन्यवाद एक बार फिर .. –