列出项目
我开发了一个应用程序,其中使用sq lite数据库。这在模拟器上运行正常。但是当我们应用程序部署在Blackberry曲线8520移动时。告诉我们数据库不存在。有人知道答案请快速回复...
我的代码是 - >
public static void insertData( String pass , String cpass)
{
boolean fl=false;
String root = null;
MainScreen ms = new MainScreen();
Enumeration e = FileSystemRegistry.listRoots();
while (e.hasMoreElements())
{
root = (String)e.nextElement();
if(root.equalsIgnoreCase("store/"))
{
fl=true;
}
}
if(!fl)
{
UiApplication.getUiApplication().invokeLater(new Runnable()
{
public void run()
{
Dialog.alert("This application requires an SD card to be present." +
"Exiting application...");
System.exit(0);
}
});
}
else
{
String dbLocation = "C:/om12345/sql/res/store/";
// Create URI
// Statement st=null;
try
{
URI myURI = URI.create("file:///store/home/user/databases/database.sqlite");
//URI myURI1=URI.
d = DatabaseFactory.create(myURI);
Statement st = d.createStatement( "insert into Admin (pass, Cpass) values('"+ pass+"','"+cpass+"')");
st.prepare();
st.execute();
st.close();
d.close();
//ms.add(new RichTextField ("tata" + "tata1"));
// UiApplication.getApplication.invokeLater(pushScreeen(ms));
}
catch ( Exception e1 )
{
System.out.println( e1.getMessage() );
e1.printStackTrace();
}
}
答案 0 :(得分:1)
您可能无法在/store
上为8520存储sqlite数据库。有关详细信息,请参阅我对BlackBerry SQLite database creation: "filesystem not ready"的回答。
答案 1 :(得分:0)
首先需要更改“String dbLocation =”C:/ om12345 / sql / res / store /“;”的行因为它指的是开发计算机上的某个位置,但无法在移动设备上运行。您需要指向应用程序本身的“res”文件夹。
答案 2 :(得分:0)
如果内部存储空间不足1gb,则无法将数据库创建到商店目录中。您已将数据库保存在C目录中,该目录可从系统访问,但不能在设备上访问。因此将其位置更改复制到res文件夹中。 &安培;检查您是否有SD卡,然后使用/ SDCard保存数据库。 如果SDCard不可用,则可以访问数据库,如果您的内部存储空间超过1GB 看看这个链接
http://docs.blackberry.com/en/developers/deliverables/17952/SQLite_database_files_1219778_11.jsp