SQLite и Android Исключение - PullRequest
       2

SQLite и Android Исключение

0 голосов
/ 25 октября 2011

Я столкнулся с проблемой в приложении для Android. Я хочу создать базу данных с помощью следующего скрипта.

CREATE TABLE IF NOT EXISTS events (
_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
source_device_id INT,
timestamp INT NOT NULL,
processed BOOLEAN DEFAULT FALSE,
event_type TINYINT NOT NULL,
payload BLOB);

CREATE INDEX IF NOT EXISTS events_unprocessed ON events (processed, _id);

и мой код Android

public void onCreate(SQLiteDatabase db) {
  InputStream schemaStream = context.getResources().openRawResource(R.raw.logdb_schema);
  Scanner schemaScanner = new Scanner(schemaStream, "UTF-8");
  schemaScanner.useDelimiter(";");

  Log.i(TAG, "Creating database");
  try {
    db.beginTransaction();
    while (schemaScanner.hasNext()) {
      String statement = schemaScanner.next();
      Log.d(TAG, "Creating database: " + statement);
      db.execSQL(statement);
    }
    db.setTransactionSuccessful();
  }
  finally {
    db.endTransaction();
  }
}

Не работает исключение времени генерации:

android.database.sqlite.SQLiteException: не ошибка:

Ответы [ 2 ]

1 голос
/ 31 мая 2012

У меня была эта проблема из-за пробелов после последней точки с запятой в моей схеме.Мой java-код выполнял эти пробелы как отдельный запрос.

На Froyo он жалуется, на Ice Cream Sandwich это не вызывает проблем.

0 голосов
/ 25 октября 2011

Полагаю, вы используете тип BOOLEAN & TINYINT, который не поддерживается. Вам нужно использовать INTEGER вместо

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