2012-04-24 2 views
0

Est-il possible d'extraire la table entière de la base de données, les lignes et les colonnes dans un formulaire dans blackberry? J'ai pu extraire des valeurs d'enregistrements dans un champ richtext, mais je souhaite les récupérer dans des zones de texte afin que les colonnes et les lignes individuelles puissent être mises à jour à partir du formulaire. Heres le code que je travaille surRécupérer toute la table sqlite dans blackberry

//Retrieve data 
    try 
    { 
     add(new RichTextField("Attempting to retrieve data from " + 
             "database1.db on the SDCard.")); 

    Statement st = db.createStatement("SELECT name,email FROM DirectoryItems"); 

    st.prepare(); 

    Cursor c = st.getCursor(); 

    Row r; 
    int i = 0; 

    while(c.next()) 
    { 

    r = c.getRow(); 
    i++; 
    add(new RichTextField(i + ".Name = " + r.getString(0) + 
               " , " + 
     "Email = " + r.getString(1))); //+ 
     // " , " + 
     //"Phone = " + r.getInteger(1))); 
    } 

    if (i==0) 
    { 
    add(new RichTextField("No data in the DirectoryItems table.")); 
    } 
    st.close(); 
    db.close(); 
    } 
    catch(Exception e) 
    {   
    System.out.println(e.getMessage()); 
    e.printStackTrace(); 
    } 
+0

Clôture db et déclaration à l'intérieur du bloc try entraîne des erreurs avec la base de données dans les prochains appels –

+0

ok problème dat peut être trié.Mais le problème que je tente de souligner est que je veux les récupérer sur un textfield.Any ideas cette? – techie

Répondre

1

Je ne veux pas donner les solutions complètes - il nécessite des tests, en cours d'exécution et ne sera pas si utile en termes de l'éducation.

Je ne vois aucun problème à le faire. Toute ligne de la table a une colonne d'identifiant de ligne. Toute Field dans blackberry ui a les méthodes setCookie, getCookie, isDirty. Vous pouvez également définir FocusListener pour chaque Field (je n'aime pas appeler la base de données à chaque changement, mais en faisant cela, le son reste raisonnable). Donc, l'idée est que vous récupériez vos données et que vous les mettiez à EditFields (un champ par valeur, il y aura donc deux champs pour le nom et l'adresse e-mail). Vous enregistrez dans cookie pour l'ID de ligne de champ et le nom de colonne. Et sur chaque événement de focus, vous vérifiez si le champ est sale et sauvegardez en toute sécurité les données modifiées en cas de vrai.

Ceci est une idée assez approximative et il semble loin de la POO (cela signifie difficile à réutiliser ou à étendre à l'avenir). Mais ça devrait marcher.

+0

Je ne suis pas sûr de n'importe quel concept de cookies étant utilisé dans un développement blackberry. Bien que je ne serais pas déranger recherche plus sur dis.Thanks pour la réponse. – techie

Questions connexes