Создание базы данных в Android - PullRequest
0 голосов
/ 29 января 2010

Я создавал базу данных и удалял ее, без каких-либо проблем добавляя реестры в свою базу данных android htc mobile sqlite.

Но теперь, после последнего удаления базы данных, каждый раз, когда я хочу создать новую, я получаю исключение sqlite, которое говорит мне, что «невозможно открыть файл базы данных» со следующими данными:

serialVersionUID (RuntimeException) = -7034897190745766939
причина = SQLiteException (id = 830058513528)
причина = SQLiteException (id = 830058513528)
detailMessage = "невозможно открыть файл базы данных" (id = 830058513560) stackState = (id = 830058513672)
stackTrace = null

Это мой код для создания базы данных:

private static String DB_PATH = "/data/data/Android.Applications/databases/testdatabase.db";

public void OpenDataBase(){

            SQLiteDatabase ApplicationDB = null;
            //Si existe la base de datos
            if(checkDataBase())
            {
                //Open readonlymode
                String myPath = DB_PATH;
                //open database as readwrite mode
                ApplicationDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
            }
            else
            {
                try
                {
                    String myPath = DB_PATH ;
                    ApplicationDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.CREATE_IF_NECESSARY);
                    CreateTables();
                    //create all the necessary tables
                    System.out.println("DataBASE CREATED");
                }
                catch(SQLiteException e)
                {
                    System.out.println("SQL LiteException"+ e.getMessage());
                }
            }
        }

 private boolean checkDataBase(){

        try{
            String myPath = DB_PATH;
            ApplicationDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

        }catch(SQLiteException e){

            //database does't exist yet.
        }
        if(ApplicationDB != null){

            ApplicationDB.close();
        }
        return ApplicationDB != null ? true : false;
    }

А это код для удаления базы данных

 public boolean DeleteDatabase()
        {
            boolean wasdeleted;
            try
            {
                File file=new File(DB_PATH);
                wasdeleted=file.delete();
            }
            catch(SecurityException e)
            {
                wasdeleted=false;

            }
            return wasdeleted;
        }

Не могли бы вы мне помочь? я застрял здесь, потому что этот код работает несколько часов назад ...

Спасибо заранее. С уважением. Хосе.

1 Ответ

2 голосов
/ 29 января 2010

Возможно, вы решите перейти на использование SQLiteOpenHelper, что устранит большую часть вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...