2010-12-21 263 views
0

我正在使用Sqlite与android开发和应用程序,它可以在未来定制(为开发)。我用数据创建了一个数据库,然后用它为应用程序创建数据库。因此,如果将来需要做出任何更改,或者我将来为其他人编写应用程序,那么我所要做的就是更改此原始数据库。这背后的想法是开发者的数据库将设置所有的用户界面和一切与应用程序。数据库创建数据库

我被困在接下来做什么我有我需要在应用程序中的数据库作为开发人员完全填充。我的想法是创建另一个DBHelper类,并在该引用内引用新DB类中的原始DBHelper类和查询。所以这是我想要从以前的数据库中创建一个数据库中的第二DBHelper类:

public class appDbHelper extends SQLiteOpenHelper { 
    private static final String DATABASE_NAME = "library.db"; //database name 
    Cursor all, tables, options, ui_type; 
    SQLiteDatabase database; 

    public appDbHelper(Context context) { 
     super(context, DATABASE_NAME, null, 1); 
     DBHandler databaseHelper = new DBHandler(context); 
     database = databaseHelper.getReadableDatabase(); 
     all = database.rawQuery("SELECT * FROM config", null); 
     tables = database.rawQuery("SELECT * FROM table_names", null); 
     options = database.rawQuery("SELECT * FROM options", null); 
     ui_type = database.rawQuery("SELECT * FROM ui_type", null); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     for(int i=0; i<tables.getCount(); i++){ 
      tables.moveToPosition(i+1); 
      String sql = ""; 
      for(int j = 0; i < all.getCount(); j++){ 
       if (all.moveToFirst()) { 
        do{ 
         sql = ", " + all.getString(2) + " " + all.getString(5).toUpperCase(); 
        } 
        while (all.moveToNext()); 
       } 
      } 
      Log.v("DatabaseSQL", sql); 
      database.execSQL("CREATE TABLE " + tables.getString(1) + "(_id INTEGER PRIMARY KEY AUTOINCREMENT"+sql+");"); 
     } 
    } 

但我有一种感觉,这是不是要什么,我需要做的方式。任何帮助将不胜感激。

+0

我不知道我是否理解一切正确。你有一个你读的数据库设置用户界面和东西?如果是,为什么?从来没有听说有人使用数据库来定制应用程序......第二个问题:问题是什么?你想知道如何同时打开2个数据库?我有点丢了你的问题... – WarrenFaith 2010-12-21 10:40:54

+0

是的,原始数据库是用来设置数据库的应用程序,它将存储应用程序的数据,这又取决于要存储的数据将显示一个不同的UI视图的类型。问题是我在完全错误的方式?这是一个应用程序,可以用于许多不同的应用程序多次,但我只想要一个地方,这是为应用程序更改,在我的例子中它是第一个配置数据库。 – SamRowley 2010-12-21 10:44:12

回答

1

我认为你做错了,并且很复杂。你提供一个数据库来读取数据,你可以轻松地创建一些插入,并且你的配置将被实现。

两个解决方案:

  1. 从我自己的项目:DatabaseAdapter.onCreate()

    在那里,你会看到数据库设置,并与数据的数据库的填充。数据本身添加了包含基于常量的数据的简单插入。所以程序员可以通过改变常量来轻松改变数据。

    由于您不必处理2个数据库,您不需要提供另一个数据库并读取它们。

  2. 由于android支持数据库位置,您也可以跳过这一切,只需打开您在res/raw或资源文件夹或sdcard上任何位置提供的sqlite数据库文件即可。

我推荐做上述两种方法之一。