Как подключиться к существующей базе данных, определенной в файле .sql? - PullRequest
1 голос
/ 29 августа 2011

Если у нас уже есть файл базы данных в формате .sql, как мы можем загрузить его в наше приложение для Android и использовать его данные?

У меня тоже была такая же проблема, и я сделал то, что сказал jaydeep.Но я не могу продолжить .. Пожалуйста, помогите мне.Я добавил 1 метод для извлечения 1 записи, которая выглядит следующим образом:

public Cursor getTitle(String g,String k) throws SQLException { 
    Cursor c = myDataBase.rawQuery(
      "select * from titles where food LIKE '%"+g+"%' and area LIKE '%"+k+"%' ",
    null); 
    if (c != null) {
        c.moveToFirst(); 
    }
    return c;
}

, где title - это имя таблицы в базе данных, n область данных, n остальные поля.и в основном файле я сделал следующее:

{
    Datahelper myDbHelper = new Datahelper(this); 
    final String tem="Chinese"; 
    final String tem2="Bur Dubai"; 

    final ListView list = (ListView)findViewById(R.id.list);

    try {
        myDbHelper.createDataBase();
    } catch (IOException ioe) {
        throw new Error("Unable to create database");
    }

    try {
        myDbHelper.openDataBase();
    }catch(SQLException sqle){
        throw sqle;
    }
    Cursor c = myDbHelper.getTitle(tem,tem2);

    if (c.moveToFirst()) DisplayTitle(c);
    else Toast.makeText(this, "No title found", 
      Toast.LENGTH_LONG).show();
}

public void DisplayTitle(Cursor c) {
    final TextView ter=(TextView)findViewById(R.id.ter); 
    c.moveToPosition(0);
    while (c.isAfterLast() == false) {
        ter.append(c.getString(3)+"\n");
        c.moveToNext();
    }
    c.close();
}

Пожалуйста, помогите мне.

Код ListView:

if (c.moveToFirst()) 
{ 
final String [] restarr=c.getColumnNames(); 

String[] fields = new String[] {db.KEY_REST}; 

list.setAdapter(new ArrayAdapter<String>(this, R.layout.main, restarr)); 

SimpleCursorAdapter rest = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1,c,fields, new int[] {android.R.id.text1}); 

list.setAdapter(rest); 
}

1 Ответ

2 голосов
/ 29 августа 2011

Вам нужна SQLite версия базы данных. Бьюсь об заклад, ваша текущая база данных, которую вы хотите отправить в приложение, имеет схему, написанную с чистым синтаксисом SQL, который сильно отличается от SQLite.

Если мое предположение верно, то вам нужно извлечь схему и преобразовать ее в SQLite. Это требует незначительных изменений в синтаксисе, но логика остается прежней.

Вот хороший учебник, как вы можете отправить свою внешнюю локальную базу данных в ваше приложение для Android:

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

Запомните версию и расширение файла базы данных.

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