Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQL逻辑错误或Blackberry编程中缺少数据库_Java_Sqlite_Blackberry - Fatal编程技术网

Java SQL逻辑错误或Blackberry编程中缺少数据库

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

我正试图将数据从blackberry插入SQLite数据库。当我调用屏幕时,我还调用了一个方法来创建数据库:

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);