Приложение продолжает падать при доступе к базе данных sqlite - PullRequest
0 голосов
/ 01 марта 2012

Я пытаюсь получить доступ к базе данных, которая работала нормально (пока я не добавил дополнительные поля и соответственно не обновил код).

Я получаю эту ошибку:

Caused by: android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: SELECT _id, title, description, locations, datesTimes, added, provider, url, cast, director, runningTime, certification, imageUrl, trailerUrl FROM films ORDER BY _id DESC

Воткод для запроса:

public Cursor getAllTitles()
    {
    return myDataBase.query("films", new String[] {
    KEY_ROWID,
    KEY_TITLE,
    KEY_DESCRIPTION,
    KEY_LOCATIONS,
    KEY_DATESTIMES,
    KEY_ADDED,
    KEY_PROVIDER,
    KEY_URL,
    KEY_CAST,
    KEY_DIRECTOR,
    KEY_RUNNINGTIME,
    KEY_CERTIFICATION,
    KEY_IMAGEURL,
    KEY_TRAILERURL},
    null,
    null,
    null,
    null,
    KEY_ROWID + " DESC"); //Sort the data using the Primary Key in descending order . . meaning last added is shown first.
    }

А вот код для извлечения данных из базы данных:

    //---Get all records from database---
    myDbHelper.openDataBase();
    cursorPosition = myDbHelper.getAllTitles();

    if (cursorPosition.moveToFirst())
    {
    do {
        AddRecordToArray(cursorPosition);
    } while (cursorPosition.moveToNext());
    }
        myDbHelper.close();
    }

    public void AddRecordToArray(Cursor cursorPosition)
    {

        //Add new record to array (which gets data from database using cursorPosition (for current row) and .getstring( for column number).
        final FilmRecord film1 = new FilmRecord(cursorPosition.getString(1), cursorPosition.getString(4), cursorPosition.getString(5), cursorPosition.getString(3), cursorPosition.getString(2), cursorPosition.getString(6), cursorPosition.getString(7), cursorPosition.getString(8), cursorPosition.getString(9), cursorPosition.getString(10), cursorPosition.getString(11), cursorPosition.getString(12), cursorPosition.getString(13));
        films.add(film1);

        myDbHelper.close();
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (myDbHelper != null) {
            myDbHelper.close();
        }

    }

Если для устранения этой ошибки требуется дополнительная информация, просто дайте мне знатьчто вам нужно.Я действительно запутался с ",".

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Пожалуйста, измените значение ключа KEY_CAST с cast на другое значение, потому что cast является резервным словом.

1 голос
/ 01 марта 2012

«приведение» - зарезервированное слово. Попробуйте изменить имя этого столбца или заключить его в кавычки. www.sqlite.org/lang_keywords.html

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