При запуске приложение не создает таблицы в sqlite
public class SQLiteHelper extends SQLiteOpenHelper {
public SQLiteHelper(Context context) {
super(context, TranerContract.DB, null, TranerContract.VERSION);
}
/**
* Called when the database is created for the first time. This is where the
* creation of tables and the initial population of the tables should happen.
*
* @param db The database.
*/
@Override
public void onCreate(SQLiteDatabase db) {
//Завел что бы убедиться в режиме днбагера, база доступна для записи и открыта
int i= db.getVersion();
boolean t1= db.isOpen();
boolean t2= db.isReadOnly();
createTableExes(db);
createTableEPodhod(db);
createTableEDay(db);
createTableEDayExes(db);
createTableEProg(db);
fromCollect();
}
....
private void createTableExes(SQLiteDatabase db) {
String SQL_CREATE_GUESTS_TABLE = "CREATE TABLE " + TranerContract.E.TableEExes.TABLE + " ("
+ TranerContract.E.TableEExes._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ TranerContract.E.TableEExes.COLUMN_ID + " INTEGERS NOT NULL UNIQUE, "
+ TranerContract.E.TableEExes.COLUMN_NAME + " NVARCHAR NOT NULL);";
// Запускаем создание таблицы
MyLog.i(SQL_CREATE_GUESTS_TABLE);
db.execSQL(SQL_CREATE_GUESTS_TABLE);
}
Для создания Таблиц используется класс контракт
public class TranerContract {
final static String DB = "test.db";
final static int VERSION = 1;
public static class E {
public static class TableEExes {
public final static String TABLE = "e_exes";
public final static String _ID = BaseColumns._ID;
public final static String COLUMN_ID = "id";
public final static String COLUMN_NAME = "name";
Запускаю приложение в режиме дебагера. Приложение заходит и отрабатывает каждую функцию по создании таблицы. ошибок не выдает. Но я так же параллельно сижу по консоле в этой таблице через adb.exe shell sqlite3 /data/data/th.stdio17.mytrener/databases/test.db .table И ничего не выводит. Было подозрение что неправильно формируется sql запрос, для этоо вывожу в логе запрос
03-29 11:51:48.342 26166-26166/th.stdio17.mytrener I/MY_LOG: CREATE TABLE e_exes (_id INTEGER PRIMARY KEY AUTOINCREMENT, id INTEGERS NOT NULL UNIQUE, name NVARCHAR NOT NULL);
как видно запрос корректный и если его вставить в консоль то таблица создаться
Еще интересный момент пока нет файла test.db понятно что метод onCreate вызывается. Но он отрабатывается даже если я запускаю приложение во второй раз и этот файл уже существует.
Неправильно формируется строка запроса. INTEGERS - нельзя писать во множественном числе, правильно INTEGER. В SQLite также вместо NVARCHAR используется TEXT. Попробуйте с этими исправлениями.
String SQL_CREATE_GUESTS_TABLE = "CREATE TABLE " + TranerContract.E.TableEExes.TABLE + " ("
+ TranerContract.E.TableEExes._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ TranerContract.E.TableEExes.COLUMN_ID + " INTEGER NOT NULL UNIQUE, "
+ TranerContract.E.TableEExes.COLUMN_NAME + " TEXT NOT NULL);";
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть поле, в которое я ввожу имя пользователя, а проверка на валидацию следующая:
Смысл в программе в том что она должна вывести на консоль 4 значения: Potatos, Tomatos, Apple, OrangeНо вместо этого выводит предупреждение [Warning] deprecated conversion...
У меня есть переменная типа String, в которой лежит следующее значение: "0xF9"Как мне получить выходной символ, код которого равен hex значению в этой...
Доброго времени сутокЯ в приложении использую GraphView для построения графика