大家好,现在有一个问题,我想在程序启动时,去更新下calls通话记录表,因为更新的条件比较复杂,所以想通过sql语句来执行
   SQLiteDatabase dataDB = SQLiteDatabase.openDatabase("/data/data/com.android.providers.contacts/databases/contacts2.db", null,SQLiteDatabase.OPEN_READWRITE);    String sql = "XXX";
    dataDB.execSQL(sql);
    dataDB.close();主要报错信息为:android.database.sqlite.SQLiteException: unable to open database file    我从网上搜了下,基本上都是自定义数据库,然后执行增,删,改,查的操作。请教大家,该如何去实现呢?    本人实在是没分了,再次恳请大伙帮帮忙。   

解决方案 »

  1.   

    写一个操作类继承SQLiteOpenHelper,
    SQLiteDatabase db = new XXX().getReadableDatabase(); //XXX指继承SQLiteOpenHelper的类名String sql = "XXX";
    dataDB.execSQL(sql);
    dataDB.close();
      

  2.   

    感谢回复,我之前是这么写的,但也不行。我调用dataDB.getPath()打印出来的不是该表所在的位置,而是跑到了我自己应用的目录下。自然也就找不到calls表了上面的代码好像没有指定数据库吧?