Как я могу проверить команды SQLite? - PullRequest
0 голосов
/ 10 января 2012

Я не знаю, как проверить команды SQLite в Android ... Когда у меня есть этот код:

final String CREATE_TABLE_USER =
                    "CREATE TABLE tbl_user ("
                    + "id INTEGER PRIMARY KEY AUTOINCREMENT,"
                    + "username VARCHAR(20));";
db.execSQL(CREATE_TABLE_USER);

Мне нравится проверять "был создан":

if (tbl_user has been created)

Как я могу написать это?Затмение говорит, что я не могу преобразовать пустоту в логическое значение ...

Ответы [ 2 ]

1 голос
/ 10 января 2012

Исключение будет выдано, если инструкция SQL не будет выполнена. Это означает, что если код, обычно следующий за db.execSQL(...), выполняется, SQL был выполнен правильно. Легко! * * 1002

Попробуйте использовать CREATE TABLE IF NOT EXISTS tbl_user (...), если вас беспокоит вероятность того, что таблица уже существует.


[РЕДАКТИРОВАТЬ]: если вы хотите проверить, существует ли создание, вам нужно перехватить исключение:

try {
    db.execSQL(CREATE_TABLE_USER);
    doMessage("made the tbl_user table");
} catch (SQLException exn) {
    doMessage("did not make the tbl_user table: " + exn.getMessage());
    throw exn; // Let the exception propagate as we're just reporting...
}
0 голосов
/ 10 января 2012

Если создать таблицу не удалось, будет сгенерировано исключение. Поэтому, если создание не выдает исключение, вы можете быть чертовски уверены, что таблица существует.

...