2011-03-18 142 views
1

我的应用程序,使得一些数据库连接(sqllite),并执行一些基本的数据库操作(插入,删除,搜索),我写了这样的代码,它完美地工作在模拟器,但不是电话,任何人都可以帮助克服这一点,在此先感谢。我使用follwing代码插入数据,我已经添加代码来创建数据库和表。 我在我的应用程序的文件夹中创建文件夹的SD卡,sqlite的工作在模拟器,但不是在设备

public void insertInTotblFavStationList(String url,String StationName,String imageUrl,String bitRate,String formats){ 
     try { 
      URI uri = URI.create("file:///SDCard/Databases/myDb.db"); 
      Statement statement =null; 
      Database grabDB = null; 
      grabDB = DatabaseFactory.open(uri); 
      statement = grabDB.createStatement("insert into tblFavStationList(url,StationName,StationImage,Bitrate,Formats) values (?,?,?,?,?)"); 
      statement.prepare(); 
      statement.bind(1, url); 
      statement.bind(2, StationName); 
      statement.bind(3, imageUrl); 
      statement.bind(4, bitRate); 
      statement.bind(5, formats);   
      statement.execute(); 
      statement.close(); 
      grabDB.close(); 
      System.out.println("ins"); 

     } catch (Exception e) { 
      System.out.println(e); 
     } 

    } 
+0

你怎么知道它在设备上不起作用? – 2011-03-19 00:29:04

+0

我有效地得到一个异常:net.rim.device.api.database.DatabasePathException:路径名无效。路径不包含正确的根目录。有关详细信息,请参阅FileSystemRegistry类。 – Jisson 2011-03-19 07:15:58

+0

我创建了一个菜单retreive从表中的数据,并在列表领域displys,我得到的名单为空 – Jisson 2011-03-19 07:17:18

回答

2

我发现,当我的BB连接到我的MacBook即使USB文件共享是关闭的SD卡似乎被安装。这意味着存储在那里的任何数据库文件都不可访问,并会抛出“无效路径名”。

检查你的SD卡是否被要去相机应用,如果是它会给你,你不能保存照片警告安装。

尝试加载您的应用程序,然后断开USB连接。这是一个痛苦,因为这意味着你无法正确调试。

0

SQLLite仅适用于黑莓版本5以上。你使用什么手机型号?这可能是你的问题。你也可以发布你的手机抛出的错误?

我也可能与代码签名。 SQLite要求您为应用程序编码签名这不是模拟器所必需的,但它适用于您的手机。这是因为它用于操作的API。 Code Sign

+0

我使用黑莓版本5,我在手机黑莓黑体9000 – Jisson 2011-03-18 16:08:20

+0

测试我,因为路径的相似问题名称,它必须是“SDCard”...例如:String dbpath =“/ SDCard/databases /”; – Cesar 2011-03-19 12:52:00

+0

试一试:URI uri = URI.create(“/ SDCard/Databases/myDb.db”);然后打开数据库添加“file://” – Cesar 2011-03-19 12:57:27

相关问题