Java SQL逻辑错误或Blackberry编程中缺少数据库
我正试图将数据从blackberry插入SQLite数据库。当我调用屏幕时,我还调用了一个方法来创建数据库:Java SQL逻辑错误或Blackberry编程中缺少数据库,java,sqlite,blackberry,Java,Sqlite,Blackberry,我正试图将数据从blackberry插入SQLite数据库。当我调用屏幕时,我还调用了一个方法来创建数据库: boolean sdCardPresent = false; public static Database sqliteDB; URI uri; public void createdatabase() { try{ Enumeration e = FileSystemRegistry.listRoots(); root = (String
boolean sdCardPresent = false;
public static Database sqliteDB;
URI uri;
public void createdatabase()
{
try{
Enumeration e = FileSystemRegistry.listRoots();
root = (String)e.nextElement();
Dialog.inform(root);
if(root.equalsIgnoreCase("sdcard/"))
{
sdCardPresent = true;
}
if(!sdCardPresent)
{
Dialog.inform("O seu dispositivo nao suporta este compartimento sem cartao de memoria, verifique se existe um SD card no seu dispositivo.");
UiApplication.getUiApplication().pushScreen(new Tab_Main());
}else{
uri = URI.create(
"file:///SDCard/Databases/MBA.db");
sqliteDB = DatabaseFactory.openOrCreate(uri);
sqliteDB = DatabaseFactory.open(uri);
Statement st = sqliteDB.createStatement("DROP TABLE IF EXISTS atms;CREATE TABLE atms " +
"( id INTEGER PRIMARY KEY AUTOINCREMENT ," +
" localizacao TEXT, " +
" mapa TEXT ," +
" foto1 TEXT ," +
" foto2 TEXT," +
" zona TEXT);" +
"" +
"DROP TABLE IF EXISTS balcoes;CREATE TABLE balcoes " +
"( id INTEGER PRIMARY KEY AUTOINCREMENT ," +
" localizacao TEXT, " +
" mapa TEXT ," +
" foto1 TEXT ," +
" foto2 TEXT," +
" zona TEXT);" +
"" +
"DROP TABLE IF EXISTS contactos;CREATE TABLE contactos " +
"( id INTEGER PRIMARY KEY AUTOINCREMENT ," +
" nome TEXT, " +
" numero_conta INTEGER);") ;
st.prepare();
st.execute();
st.close();
sqliteDB.close();
Dialog.inform("Status: Database was successfully created.");
//}
} catch (Exception e){
System.out.println(e.getMessage());
Dialog.inform("\n "+e);
//UiApplication.getUiApplication().popScreen(Screen);
}
}
之后,我使用一些Editfields和其他组件来获取值。我调用该方法插入参数并发送查询:
例如,当我用
query=“insert into contactos values(null,“a”,“1”);
调用它时,我得到一个异常。SQL逻辑错误或缺少数据库。尝试删除第三列值周围的引号
INSERT INTO contactos VALUES (null,"a", 1);
它被定义为一个整数
numero_conta INTEGER
编辑:不,它不起作用我尝试,我尝试插入contactos值(null,'a',1);我得到了相同的结果…帮助您可以更新问题中的完整异常堆栈跟踪吗?net.rim.device.api.database.DatabaseException:插入contactos值(null,'a',1):SQL逻辑错误或缺少数据库System.out.println上的uri值“file:///SDCard/Databases/MBA.db,但新异常已捕获net.rim.device.api.database.DatabaseIOException:文件系统错误(12)。
INSERT INTO contactos VALUES (null,"a", 1);
numero_conta INTEGER
System.out.println(uri); // check if null, or different
if (uri == null) {
uri = URI.create(
"file:///SDCard/Databases/MBA.db");
}
sqliteDB = DatabaseFactory.openOrCreate(uri);
sqliteDB = DatabaseFactory.open(uri); // open again
Statement st = sqliteDB.createStatement(query);