在黑莓中检索整个sqlite表

时间:2012-04-24 07:13:45

标签: sqlite blackberry

是否可以将整个数据库表,行和列提取到黑莓中的表单中? 我已经能够从记录中检索值到richtextfield,但我想将它们检索到文本框,以便可以从表单更新单个列和行。 继承了我一直在努力的代码

 //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();
   }

1 个答案:

答案 0 :(得分:1)

我不想提供完整的解决方案 - 它需要测试,运行,并且在教育方面不会那么有用。

我没有看到任何问题。表中的任何行都有行id列。黑莓ui中的任何Field都有方法setCookiegetCookieisDirty。您还可以为每个FocusListener设置Field(我不喜欢在每次更改事件时调用save to database,但是在焦点上执行此操作会让声音合理)。

因此,您的想法是获取数据并将其放入EditFields(每个值一个字段,因此名称和电子邮件将有两个字段)。您将cookie保存为字段行ID和列名称。在每个焦点离开事件中,您检查字段是否脏,并在出现真实情况时安全地保存更改的数据。

这是一个非常粗略的想法,它听起来远离OOP(这意味着将来难以重用或扩展)。但它应该有用。