gpt4 book ai didi

sqlite - 黑莓-如何创建SQLite数据库?

转载 作者:行者123 更新时间:2023-12-03 19:06:40 30 4
gpt4 key购买 nike

我正在为Blackberry设备开发一个应用程序。这个程序包含一个数据库。由于该API是在最新的API版本上提供的,因此我决定使用SQLite。

我遵循了随处都可以找到的所有示例,但是无论发生什么情况,我的数据库都为空,并且出现了“ DatabaseIOException:文件系统错误(12)”。

我应该补充一点,我目前正在模拟器上工作。

这是相关的代码:

// Creation of the database
private static final String DATABASE_NAME = "myDatabase.db";
private static final String STORAGE_LOCATION = "/store/databases/myApp/";
try
{
// Create URI
URI uri = URI.create(STORAGE_LOCATION + DATABASE_NAME);

// Open or create a plain text database. This will create the
// directory and file defined by the URI (if they do not already exist).
db = DatabaseFactory.openOrCreate(uri, new DatabaseSecurityOptions(false));

// Close the database in case it is blank and we need to write to the file
db.close();
this.CreateTable();
}
catch ( Exception e )
{
System.out.println( e.getMessage() );
e.printStackTrace();
}


表创建方法:

 public void CreateTable(){
URI uri;
try {
uri = URI.create(STORAGE_LOCATION + DATABASE_NAME);

// Create a new DatabaseOptions object forcing foreign key constraints
DatabaseOptions databaseOptions = new DatabaseOptions();
databaseOptions.set( "foreign_key_constraints", "on" );

// Open the database
db = DatabaseFactory.open(uri, databaseOptions);

} catch (ControlledAccessException e) {
e.printStackTrace();
} catch (DatabaseIOException e) {
e.printStackTrace();
} catch (DatabasePathException e) {
e.printStackTrace();
} catch (IllegalArgumentException e1) {
e1.printStackTrace();
} catch (MalformedURIException e1) {
e1.printStackTrace();
} catch (DatabaseOptionsSetInvalidKeyException e) {
e.printStackTrace();
} catch (DatabaseOptionsSetInvalidValueException e) {
e.printStackTrace();
}

Statement st;
try {
st = this.getDb().createStatement("CREATE TABLE '" + TABLE_NAME1 +
"'('id' PRIMARY KEY, 'libContexte' TEXT, 'libelle' TEXT, 'xcoord' REAL, "+
"'ycoord' REAL)");

st.prepare();
st.execute();
} catch (DatabaseException e) {
e.printStackTrace();
}

try {
db.close();
} catch (DatabaseIOException e) {
e.printStackTrace();
}
}


谢谢您的帮助,我真的不知道问题出在哪里。

最佳答案

只是一个想法-并非每个设备都支持在设备内存(Locations of SQLite database files)上创建数据库,因此请尝试使用SDCard(还要确保模拟器具有SDCard)。

关于sqlite - 黑莓-如何创建SQLite数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5408170/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com