2012-02-17 76 views
0

我试图从SQlite数据库获取表值,但无法在DatabaseFactory.open()打开URI。无法从BlackBerry SQLite数据库获取值

我写了下面的代码:

URI myURI = null; 
    Cursor cursor = null; 
    try 
    { 
     myURI = URI.create("/SDCard/databases/itemdb.db"); 

     try 
     { 
      if(DatabaseFactory.exists(myURI)) 
      { 
       Database sqliteDb = DatabaseFactory.open(myURI); 
       try 
       { 
        Statement st=sqliteDb.createStatement(query); 
        st.prepare(); 
        Logger.out("Grocery", "it is comin here ---- 12"); 
        cursor = st.getCursor(); 
       } 
      } 
     } 
    } 
+0

“itemdb.db”数据库由您的应用程序创建?你是用加密格式创建你的数据库吗?最重要的是在运行此代码之前,您是否使用模拟器安装了您的PC文件系统Sd卡?请让我知道上面的事情清楚 – 2012-02-18 04:19:18

+0

是的..这个itemdb.db是由我的应用程序创建的。我已经安装了SD卡。当我在数据库中插入值时,它正在发生。我也能看到这些值。但只有在检索时的问题.. – 2012-02-18 05:17:13

+0

好的请参考这个http://stackoverflow.com/a/9324410/914111链接,你有什么疑问请到这里http://chat.stackoverflow.com/rooms/4014/knowledge-sharing-center-for-blackberry-and-java我会帮你 – 2012-02-18 06:43:47

回答

0

,如果你提供当open()调用失败,你会得到错误信息会更好。基于此评论

yes..That itemdb.db仅由我的应用程序创建的。我已经安装了SD卡。当我在数据库中插入值时,它正在发生。我也能看到这些值。但唯一的问题在检索时..

我猜你已经从插入打开数据库。确保插入代码正确关闭数据库,并确保同步,以便读取不会与插入代码同时运行。