Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/43: Рейтинг темы: голосов - 43, средняя оценка - 4.84
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212

"Attempt to re-open an already-closed object" при работе с SQLite

09.04.2015, 18:03. Показов 9816. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Разрабатываю приложение и столкнулся с проблемой... Лог выдаёт вот такое:

FATAL EXCEPTION: main
java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase:

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


Та самая проблемная активити.
EventActivity.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_event);
 
        Log.v(TAG, "ОТКРЫВАЕМ ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ" );
 
        // открываем подключение к БД
        db = new DB(this);
        db.open();
 
        Log.v(TAG, "ОК- ОТКРЫЛИ" );
 
        // РАСКРЫВАЮЩИЕСЯ СПИСОКИ
 
        edtMan = (Spinner) findViewById(R.id.ManSpinner);
        edtET = (Spinner) findViewById(R.id.ETSpinner);
        edtMeet = (Spinner) findViewById(R.id.MeetingSpinner);
 
        //СПИНЕРЫ MAN - EVENT TYPE - MEET
        CreatNewSpinnerFU("man", "name", edtMan);
        CreatNewSpinnerFU("event_type", "name", edtET);
        CreatNewSpinnerFU("meeting", "name", edtMeet);
 
 
        checkboxEvent = (CheckBox) findViewById(R.id.checkBox);
 
        Log.v(TAG, "ЖДЁМ 'ТЫК' КНОПКИ" );
 
        btnEvent  = (Button) findViewById(R.id.new_event_in_tab);
        btnEvent.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Do something in response to button click
 
                boolean checkMan= !true,
                        checkET = !true,
                        checkMeet = !true;
 
                Log.v(TAG, "ТЫК!" );
 
                //checkMan = !true; checkET = !true; checkMeet = !true;
 
                Log.v(TAG, "РАБОТАЕ С МАНАМИ --- if (edtMan.getSelectedItem() != null) ---" );
 
                if (edtMan.getSelectedItem() != null)
                {
                    Log.v(TAG, "----if МЫ ВНУТРИ  -----" );
                    Log.v(TAG, "----if -----   checkMan = true;" );
                    checkMan = true;
                    Log.v(TAG, "----if -----   checkMan = true;-- ОК" );
 
 
                    Log.v(TAG, "----if----- ПРИСВАИВАЕМ КУРСОРУ  cur = db.GetCatalogValueByName(.........);" );
                    cur = db.GetCatalogValueByName("man", "_id", "name", edtMan.getSelectedItem().toString());
                    Log.v(TAG, "----if----- ПРИСВАИВАЕМ КУРСОРУ  cur = db.GetCatalogValueByName(.........);-------ОК" );
 
                    Log.v(TAG, "----if-----   ПРИСВАИВАЕМ _id ---- cManID = cur.getInt(...._id\")-----" );
                    cManID = cur.getInt(cur.getColumnIndex("_id"));
                    Log.v(TAG, "----if-----   ПРИСВАИВАЕМ _id ---- cManID = cur.getInt(...._id\")-----ОК" );
                    //db.addRec("event", DB.EVENT_COLUMN_MAN, cManID );
                }
 
                Log.v(TAG, "РАБОТАЕ С EВЕНТ ТАЙПОМ --- if (edtET.getSelectedItem() != null) ---" );
                if (edtET.getSelectedItem() != null)
                {
                    checkET = true;
                    cur = db.GetCatalogValueByName("event_type", "_id", "FullName", edtET.getSelectedItem().toString());
                    cETID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_EVENT_TYPE, cETID );
                }
 
                Log.v(TAG, "РАБОТАЕ С МИТОМ --- if (edtMeet.getSelectedItem() != null) ---" );
                if (edtMeet.getSelectedItem() != null)
                {
                    checkMeet = true;
                    cur = db.GetCatalogValueByName("event_type", "_id", "FullName", edtMeet.getSelectedItem().toString());
                    cMeetID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID );
                }
 
                Log.v(TAG, "ПРОВЕРЯЕМ ФЛАГИ НА 'TRUE' ПОСЛЕ ПИШЕМ В ТАБЛИЦУ 'event' --- if(checkMan != false & checkET != false & checkMeet != false) ---" );
 
                //Если все значения true, то записываем данные в таблицу "event"
                if(checkMan != false & checkET != false & checkMeet != false){
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec(\"event\", DB.EVENT_COLUMN_MAN, cManID ); ---" );
                    db.addRec("event", DB.EVENT_COLUMN_MAN, cManID );
                    Log.v(TAG, "ОК" );
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec(\"event\", DB.EVENT_COLUMN_EVENT_TYPE, cETID ); ---" );
                    db.addRec("event", DB.EVENT_COLUMN_EVENT_TYPE, cETID );
                    Log.v(TAG, "ОК" );
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ЧЕКБОКСИКА ---- ---" );
                    db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID );
 
                    if (checkboxEvent.isChecked() == true) {
                        db.addRec("event", DB.EVENT_COLUMN_VALUE, 1 );
                        Log.v(TAG, "ОК---1" );
 
                    }else {
                        db.addRec("event", DB.EVENT_COLUMN_VALUE, 0 );
                        Log.v(TAG, "ОК---0" );
                    }
 
                }
 
 
            }
        });
        db.close();
    }
//СОЗДАНИЕ SPINNER
    public void CreatNewSpinnerFU(String name_table, String name_column, Spinner qwerty) {
        List ListArray = new ArrayList();
        Cursor Post = db.GetCatalogByName(name_table);
        Post.moveToFirst();
 
        if (Post != null && Post.getCount() > 0) {
            do {
                ListArray.add(Post.getString(Post.getColumnIndex(name_column)));
            } while (Post.moveToNext());
 
            ArrayAdapter dataAdapterPost = new ArrayAdapter(this, android.R.layout.simple_spinner_item, ListArray);
            dataAdapterPost.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            qwerty.setAdapter(dataAdapterPost);
        }
    }

Класс с базой данных.
BD.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
public class DB {
 
    private static final String TAG = "DB__ACTIVITY";
 
 
    private static final String DB_NAME = "Allreg";
    private static final int DB_VERSION = 1;
    //man
    private static final String DB_TABLE = "man";
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_NAME = "name";
 
    private static final String DB_CREATE =
            "create table " + DB_TABLE + "(" +
                    COLUMN_ID + " integer primary key autoincrement, " +
                    COLUMN_NAME + " text" +
                    ");";
 
    //event type
    private static final String EVENT_TYPE_TABLE = "event_type";
    public static final String EVENT_TYPE_COLUMN_ID = "_id";
    public static final String EVENT_TYPE_COLUMN_NAME = "name";
 
    private static final String EVENT_TYPE_DB_CREATE =
            "create table " + EVENT_TYPE_TABLE + "(" +
                    EVENT_TYPE_COLUMN_ID + " integer primary key autoincrement, " +
                    EVENT_TYPE_COLUMN_NAME + " text" +
                    ");";
 
    //meeting
    private static final String MEETING_TABLE = "meeting";
    public static final String MEETING_COLUMN_ID = "_id";
    public static final String MEETING_COLUMN_NAME = "name";
 
    private static final String MEETING_DB_CREATE =
            "create table " + MEETING_TABLE + "(" +
                    MEETING_COLUMN_ID + " integer primary key autoincrement, " +
                    MEETING_COLUMN_NAME + " text" +
                    ");";
 
    //event
    private static final String EVENT_TABLE = "event";
    public static final String EVENT_COLUMN_ID = "_id";
    public static final String EVENT_COLUMN_MAN = "ManId";
    public static final String EVENT_COLUMN_MEETING = "MeetingId";
    public static final String EVENT_COLUMN_EVENT_TYPE = "EventTypeId";
    public static final String EVENT_COLUMN_VALUE = "Value";
 
    private static final String EVENT_DB_CREATE =
            "create table " + EVENT_TABLE + "(" +
                    EVENT_COLUMN_ID + " integer primary key autoincrement, " +
                    EVENT_COLUMN_MAN + " integer" +
                    EVENT_COLUMN_MEETING + " integer" +
                    EVENT_COLUMN_EVENT_TYPE + " integer" +
                    EVENT_COLUMN_VALUE + " integer" +
                    ");";
 
    private final Context mCtx;
 
 
    private DBHelper mDBHelper;
    private SQLiteDatabase mDB;
 
    public DB(Context ctx) {
        mCtx = ctx;
    }
 
    // открыть подключение
    public void open() {
        mDBHelper = new DBHelper(mCtx, DB_NAME, null, DB_VERSION);
        mDB = mDBHelper.getWritableDatabase();
    }
 
    // закрыть подключение
    public void close() {
        if (mDBHelper!=null) mDBHelper.close();
    }
 
    // получить все данные из таблицы DB_TABLE
    public Cursor getAllData(String name_DB) {
        String str = name_DB;
        return mDB.query(str, null, null, null, null, null, null);
    }
 
    // удалить запись из DB_TABLE
    //-----------------------------------поправить работу с _id
    public void delRec(String name_DB , String column_id , long id) {
        String str = name_DB;
        String col_id = column_id;
        mDB.delete(name_DB, col_id + " = " + id, null);
    }
 
    // ФУНКЦИЯ РАБОТЫ С БД
    // ПОЛУЧЕНИЕ СПРАВОЧНИКА ПО ИМЕНИ
    public Cursor GetCatalogByName(String FullName)
    {
        Cursor cur = mDB.rawQuery("select * from " + FullName.toString() , null);
        cur.moveToFirst();
        return cur;
    }
 
    // ПОЛУЧЕНИЕ ПОЛЯ В СПРАВОЧНИКЕ ПО ИМЕНИ ПОЛЯ И СПРАВОЧНИКА
    public Cursor GetCatalogValueByName(String CatalogFullName,
                                        String FieldFullName,
                                        String ConditionField,
                                        String Value)
    {
        //Open();
 
        Log.v(TAG, "----МЫ В GetCatalogValueByName----");
 
        Log.v(TAG,"---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ." + " select " + FieldFullName + " from " + CatalogFullName +
                " where " + ConditionField + " = '" + Value + "'" );
 
        Cursor cur = mDB.rawQuery(" select " + FieldFullName +
                " from " + CatalogFullName +
                " where " + ConditionField + " = '" + Value + "'"
                , null);
 
        Log.v(TAG, " select " + FieldFullName +
                " from " + CatalogFullName +
                " where " + ConditionField + " = '" + Value + "'");
 
        cur.moveToFirst();
        //Close();
 
        Log.v(TAG, cur.getCount() + "");
 
        return cur;
    }
 
    // класс по созданию и управлению БД
    private class DBHelper extends SQLiteOpenHelper {
 
        public DBHelper(Context context, String name, CursorFactory factory,
                        int version) {
            super(context, name, factory, version);
        }
 
        // создаем и заполняем БД
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(DB_CREATE);
            db.execSQL(EVENT_TYPE_DB_CREATE);
            db.execSQL(MEETING_DB_CREATE);
            db.execSQL(EVENT_DB_CREATE);
 
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
    }
}



И сам лог
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
04-09 15:46:08.708  10679-10679/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОТКРЫВАЕМ ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ
04-09 15:46:08.728  10679-10679/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК- ОТКРЫЛИ
04-09 15:46:08.728  10679-10679/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЖДЁМ 'ТЫК' КНОПКИ
04-09 15:46:12.092  10679-10679/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ТЫК!
04-09 15:46:12.092  10679-10679/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ РАБОТАЕ С МАНАМИ --- if (edtMan.getSelectedItem() != null) ---
04-09 15:46:12.092  10679-10679/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if МЫ ВНУТРИ  -----
04-09 15:46:12.092  10679-10679/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if -----   checkMan = true;
04-09 15:46:12.092  10679-10679/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if -----   checkMan = true;-- ОК
04-09 15:46:12.092  10679-10679/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if----- ПРИСВАИВАЕМ КУРСОРУ  cur = db.GetCatalogValueByName(.........);
04-09 15:46:12.092  10679-10679/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ----МЫ В GetCatalogValueByName----
04-09 15:46:12.092  10679-10679/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ.
    select _id from man where name = 'Вася '
04-09 15:46:12.092  10679-10679/com.example.kirukato.coolstdreg D/AndroidRuntime﹕ Shutting down VM
04-09 15:46:12.092  10679-10679/com.example.kirukato.coolstdreg W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4154d8b0)
04-09 15:46:12.102  10679-10679/com.example.kirukato.coolstdreg E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/com.example.kirukato.coolstdreg/databases/Allreg
            at android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:55)
            at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318)
            at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1261)
            at com.example.kirukato.coolstdreg.DB.GetCatalogValueByName(DB.java:154)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:96)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
Программа не вся, так как тут есть ограничение по символам. Надеюсь на вашу помощь.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.04.2015, 18:03
Ответы с готовыми решениями:

Ошибка "attempt to re-open an already-closed object: sqlitequery:"
Доброе утро! Реализую подсказки для SearchView. Курсор для подсказки заполняется в след. методе MainActivity: @Override ...

Ошибка при работе с Entity Framework (Object reference not set to an instance of an object)
Использую Entity Framework (класс MySiteDataContext). В базе есть хранимая процедура PagingOfGoodsCatalog, которую пытаюсь вызывать....

Attempt to assign property of non-object
Мне нужно обновить строку в БД юзера с текущем id для этого написан код $user_id =...

41
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
09.04.2015, 20:40
Студворк — интернет-сервис помощи студентам
Уже сам понял.

Дык у тебя курсор пустой - ни одной записи.
Как оттуда можно, что-то взять?

Это раз.

Второе - просто так из курсора сразу ничего не возьмёшь.
Нужно переместиться на первую, например, запись, для начала.

Java
1
cur.moveToFirst();
И вообще, что ты хочешь сделать с данныи из курсора?
А если там 100 значений?
1
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
09.04.2015, 20:53  [ТС]
Armagedo, не понимаю, как там может быть ни одной записи... Два прошлых if'а идентичны. И всё им передавалась.

В класе DB.java я и так перехожу на первый.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public Cursor GetCatalogValueByName(String CatalogFullName,
                                        String FieldFullName,
                                        String ConditionField,
                                        String Value)
    {
        Cursor cur = mDB.rawQuery(" select " + FieldFullName +
                " from " + CatalogFullName +
                " where " + ConditionField + " = '" + Value + "'"
                , null);
 
        cur.moveToFirst();
 
        Log.v(TAG, cur.getCount() + "");
 
        return cur;
    }
После в Евенте мы выбираем нужный _id
Java
1
2
cur = db.GetCatalogValueByName("event_type", "_id", "name", edtMeet.getSelectedItem().toString());
cMeetID = cur.getInt(cur.getColumnIndex("_id"));
Добавлено через 3 минуты
Armagedo, сравнивается строка из spinner'а с ячейкой в БД и забирается нужный _id, который позже будет послан на хранение в 4-ю таблицу БД "event"
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
09.04.2015, 20:59
Цитата Сообщение от Naomis Посмотреть сообщение
Armagedo, не понимаю, как там может быть ни одной записи.
Не знаю, проверь пошагово, что там.

Но факт остается фактом - ты же сам писал


Log.v(TAG, cur.getCount() + "");
выдаёт
DB__ACTIVITY﹕ 0
Т.е. в кусоре cur аж 0 записей.

Цитата Сообщение от Naomis Посмотреть сообщение
В класе DB.java я и так перехожу на первый.
Ну, если положение указателя текущей записи сохраняется при передаче из функции, то ...
Я не экспериментровал с таким подходом, перевожу явно для полученного курсора, а не его "прообраза".
Не говорю, что оно не работает, но я так, как ты, не пробовал двигать этот указатель.
1
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
09.04.2015, 21:13  [ТС]
Armagedo, чёрт возьми, где твоя карма, чтобы ставить в неё плюсики? Нашёл свою ошибку. неправильный входящий параметр был...
Благодарствую за твоё безмерное терпение.

Дела сей час обстоят так. Программа, вроде бы всё делает, даже записывает в БД, но как-то с транно с периодической руганью и время от времени всё же вылетает.
Снова лог:
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ТЫК!
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ РАБОТАЕ С МАНАМИ --- if (edtMan.getSelectedItem() != null) ---
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if МЫ ВНУТРИ -----
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if ----- checkMan = true;
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if ----- checkMan = true;-- ОК
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if----- ПРИСВАИВАЕМ КУРСОРУ cur = db.GetCatalogValueByName(.........);
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ Выводим edtMan.getSelectedItem().toString()------Вася
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ----МЫ В GetCatalogValueByName----
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ. select _id from man where name = 'Вася '
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ select _id from man where name = 'Вася '
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ 1
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if----- ПРИСВАИВАЕМ КУРСОРУ cur = db.GetCatalogValueByName(.........);-------ОК
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if----- ПРИСВАИВАЕМ _id ---- cManID = cur.getInt(...._id")-----
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if----- ПРИСВАИВАЕМ _id ---- cManID = cur.getInt(...._id")-----ОК
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ РАБОТАЕ С EВЕНТ ТАЙПОМ --- if (edtET.getSelectedItem() != null) ---
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ----МЫ В GetCatalogValueByName----
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ. select _id from event_type where name = 'ответ по дз '
04-09 21:09:56.419 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ select _id from event_type where name = 'ответ по дз '
04-09 21:09:56.429 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ 1
04-09 21:09:56.429 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ РАБОТАЕ С МИТОМ --- if (edtMeet.getSelectedItem() != null) ---
04-09 21:09:56.429 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ----МЫ В GetCatalogValueByName----
04-09 21:09:56.429 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ. select _id from meeting where name = 'зачет '
04-09 21:09:56.429 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ select _id from meeting where name = 'зачет '
04-09 21:09:56.429 17506-17506/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ 1
04-09 21:09:56.429 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ПРОВЕРЯЕМ ФЛАГИ НА 'TRUE' ПОСЛЕ ПИШЕМ В ТАБЛИЦУ 'event' --- if(checkMan != false & checkET != false & checkMeet != false) ---
04-09 21:09:56.429 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MAN, cManID ); ---
04-09 21:09:56.459 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-09 21:09:56.459 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_EVENT_TYPE, cETID ); ---
04-09 21:09:56.459 17506-17506/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named EventTypeId
04-09 21:09:56.469 17506-17506/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting EventTypeId=4
android.database.sqlite.SQLiteException: table event has no column named EventTypeId (code 1): , while compiling: INSERT INTO event(EventTypeId) VALUES (?)
at android.database.sqlite.SQLiteConnection .nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection .acquirePreparedStatement(SQLiteConnecti on.java:889)
at android.database.sqlite.SQLiteConnection .prepare(SQLiteConnection.java:500)
at android.database.sqlite.SQLiteSession.pr epare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<i nit>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement. <init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.i nsertWithOnConflict(SQLiteDatabase.java: 1475)
at android.database.sqlite.SQLiteDatabase.i nsert(SQLiteDatabase.java:1347)
at com.example.kirukato.coolstdreg.DB.addRe c(DB.java:116)
at com.example.kirukato.coolstdreg.EventAct ivity$1.onClick(EventActivity.java:133)
at android.view.View.performClick(View.java :4421)
at android.view.View$PerformClick.run(View. java:17903)
at android.os.Handler.handleCallback(Handle r.java:730)
at android.os.Handler.dispatchMessage(Handl er.java:92)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(Activity Thread.java:5225)
at java.lang.reflect.Method.invokeNative(Na tive Method)
at java.lang.reflect.Method.invoke(Method.j ava:525)
at com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:741)
at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
04-09 21:09:56.469 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-09 21:09:56.469 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ЧЕКБОКСИКА ---- ---
04-09 21:09:56.469 17506-17506/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named MeetingId
04-09 21:09:56.469 17506-17506/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting MeetingId=2
android.database.sqlite.SQLiteException: table event has no column named MeetingId (code 1): , while compiling: INSERT INTO event(MeetingId) VALUES (?)
at android.database.sqlite.SQLiteConnection .nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection .acquirePreparedStatement(SQLiteConnecti on.java:889)
at android.database.sqlite.SQLiteConnection .prepare(SQLiteConnection.java:500)
at android.database.sqlite.SQLiteSession.pr epare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<i nit>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement. <init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.i nsertWithOnConflict(SQLiteDatabase.java: 1475)
at android.database.sqlite.SQLiteDatabase.i nsert(SQLiteDatabase.java:1347)
at com.example.kirukato.coolstdreg.DB.addRe c(DB.java:116)
at com.example.kirukato.coolstdreg.EventAct ivity$1.onClick(EventActivity.java:137)
at android.view.View.performClick(View.java :4421)
at android.view.View$PerformClick.run(View. java:17903)
at android.os.Handler.handleCallback(Handle r.java:730)
at android.os.Handler.dispatchMessage(Handl er.java:92)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(Activity Thread.java:5225)
at java.lang.reflect.Method.invokeNative(Na tive Method)
at java.lang.reflect.Method.invoke(Method.j ava:525)
at com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:741)
at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
04-09 21:09:56.469 17506-17506/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named Value
04-09 21:09:56.479 17506-17506/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting Value=1
android.database.sqlite.SQLiteException: table event has no column named Value (code 1): , while compiling: INSERT INTO event(Value) VALUES (?)
at android.database.sqlite.SQLiteConnection .nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection .acquirePreparedStatement(SQLiteConnecti on.java:889)
at android.database.sqlite.SQLiteConnection .prepare(SQLiteConnection.java:500)
at android.database.sqlite.SQLiteSession.pr epare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<i nit>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement. <init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.i nsertWithOnConflict(SQLiteDatabase.java: 1475)
at android.database.sqlite.SQLiteDatabase.i nsert(SQLiteDatabase.java:1347)
at com.example.kirukato.coolstdreg.DB.addRe c(DB.java:116)
at com.example.kirukato.coolstdreg.EventAct ivity$1.onClick(EventActivity.java:140)
at android.view.View.performClick(View.java :4421)
at android.view.View$PerformClick.run(View. java:17903)
at android.os.Handler.handleCallback(Handle r.java:730)
at android.os.Handler.dispatchMessage(Handl er.java:92)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(Activity Thread.java:5225)
at java.lang.reflect.Method.invokeNative(Na tive Method)
at java.lang.reflect.Method.invoke(Method.j ava:525)
at com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:741)
at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
04-09 21:09:56.479 17506-17506/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК---1
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
09.04.2015, 21:25
Чё ты не читаешь логи - там же всё написано?

android.database.sqlite.SQLiteException: table event has no column named EventTypeId(code 1): , while compiling: INSERT INTO event(EventTypeId) VALUES (?)
Таблица event не имеет столбца с именем EventTypeId

Ошибка возникает в методе addRec в строке 116 файла DB.java

at com.example.kirukato.coolstdreg.DB.addRe c(DB.java:116)
Иди и смотри
1
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
10.04.2015, 18:06  [ТС]
Armagedo, понял. Пошел смотреть. Спасибо тебе огромное. Твоё терпение безмерно! Где карма твоя, куда плюсики ставить? Сей час буду разбираться с БД. Ещё раз спасибо. Я ещё вернусь сюда... Так как лог чуть ли не весь красный и программа вылетает уже только через раз. Но прогресс на всё лицо.

Добавлено через 20 часов 20 минут
Ошибка "attempt to re-open an already-closed object" по прежнему возникает, но теперь где-то через каждые три попытки вбить данные в БД.

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
04-10 17:41:05.825    2977-2977/com.example.kirukato.coolstdreg D/on pause﹕ /
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ТЫК!
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ РАБОТАЕ С МАНАМИ --- if (edtMan.getSelectedItem() != null) ---
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if МЫ ВНУТРИ  -----
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if -----   checkMan = true;
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if -----   checkMan = true;-- ОК
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if----- ПРИСВАИВАЕМ КУРСОРУ  cur = db.GetCatalogValueByName(.........);
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ Выводим edtMan.getSelectedItem().toString()------Мифодий
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ----МЫ В GetCatalogValueByName----
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ. select _id from man where name = 'Мифодий '
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg D/AndroidRuntime﹕ Shutting down VM
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4154d8b0)
04-10 17:41:30.851    2977-2977/com.example.kirukato.coolstdreg E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/com.example.kirukato.coolstdreg/databases/Allreg
            at android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:55)
            at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318)
            at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1261)
            at com.example.kirukato.coolstdreg.DB.GetCatalogValueByName(DB.java:156)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:96)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
Сыылается на строку "mDB.insert(table, null, cv);" в DB.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// добавить запись в TABLE
    public void addRec(String name_table, String name_column, String txt) {
        String table = name_table;
        String column = name_column;
        ContentValues cv = new ContentValues();
        cv.put(column, txt);
        mDB.insert(table, null, cv);
    }
    //Перегружение функции(для int)
    public void addRec(String name_table, String name_column, int txt) {
        String table = name_table;
        String column = name_column;
        ContentValues cv = new ContentValues();
        cv.put(column, txt);
        mDB.insert(table, null, cv);
    }
И на активность "db.addRec("event", "MeetingId", cMeetID );". Только фишка в том, что вот это "db.addRec("event", "MeetingId", cMeetID );" он вроде бы в базу записывает, по крайней мере не ругается. Что не так?
Java
1
2
3
4
5
6
7
8
if(checkMan != false & checkET != false & checkMeet != false){
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec(\"event\", DB.EVENT_COLUMN_MAN, cManID ); ---" );
                    db.addRec("event", "ManId", cManID );
                    Log.v(TAG, "ОК" );
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec(\"event\", DB.EVENT_COLUMN_MEETING, cMeetID ); ---" );
                    db.addRec("event", "MeetingId", cMeetID );
0
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
10.04.2015, 18:12  [ТС]
Весь лог.

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
04-10 17:49:35.929    4807-4807/com.example.kirukato.coolstdreg D/OpenGLRenderer﹕ Enabling debug mode 0
04-10 17:49:48.192    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОТКРЫВАЕМ ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ
04-10 17:49:48.202    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК- ОТКРЫЛИ
04-10 17:49:48.202    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЖДЁМ 'ТЫК' КНОПКИ
04-10 17:50:09.235    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ТЫК!
04-10 17:50:09.235    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ РАБОТАЕ С МАНАМИ --- if (edtMan.getSelectedItem() != null) ---
04-10 17:50:09.235    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if МЫ ВНУТРИ  -----
04-10 17:50:09.235    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if -----   checkMan = true;
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if -----   checkMan = true;-- ОК
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if----- ПРИСВАИВАЕМ КУРСОРУ  cur = db.GetCatalogValueByName(.........);
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ Выводим edtMan.getSelectedItem().toString()------Кондратий
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ----МЫ В GetCatalogValueByName----
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ. select _id from man where name = 'Кондратий'
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ select _id from man where name = 'Кондратий'
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ 1
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if----- ПРИСВАИВАЕМ КУРСОРУ  cur = db.GetCatalogValueByName(.........);-------ОК
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if-----   ПРИСВАИВАЕМ _id ---- cManID = cur.getInt(...._id")-----
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if-----   ПРИСВАИВАЕМ _id ---- cManID = cur.getInt(...._id")-----ОК
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ РАБОТАЕ С EВЕНТ ТАЙПОМ --- if (edtET.getSelectedItem() != null) ---
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ----МЫ В GetCatalogValueByName----
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ. select _id from event_type where name = 'спал '
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ select _id from event_type where name = 'спал '
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ 1
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ РАБОТАЕ С МИТОМ --- if (edtMeet.getSelectedItem() != null) ---
04-10 17:50:09.245    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ----МЫ В GetCatalogValueByName----
04-10 17:50:09.255    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ. select _id from meeting where name = 'лабораторная '
04-10 17:50:09.255    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ select _id from meeting where name = 'лабораторная '
04-10 17:50:09.255    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ 1
04-10 17:50:09.255    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ПРОВЕРЯЕМ ФЛАГИ НА 'TRUE' ПОСЛЕ ПИШЕМ В ТАБЛИЦУ 'event' --- if(checkMan != false & checkET != false & checkMeet != false) ---
04-10 17:50:09.255    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MAN, cManID ); ---
04-10 17:50:09.305    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-10 17:50:09.305    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID ); ---
04-10 17:50:09.305    4807-4807/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named MeetingId
04-10 17:50:09.315    4807-4807/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting MeetingId=3
    android.database.sqlite.SQLiteException: table event has no column named MeetingId (code 1): , while compiling: INSERT INTO event(MeetingId) VALUES (?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1475)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1347)
            at com.example.kirukato.coolstdreg.DB.addRec(DB.java:116)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:133)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
04-10 17:50:09.315    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-10 17:50:09.315    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_EVENT_TYPE, cETID ); ---
04-10 17:50:09.315    4807-4807/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named EventTypeId
04-10 17:50:09.315    4807-4807/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting EventTypeId=2
    android.database.sqlite.SQLiteException: table event has no column named EventTypeId (code 1): , while compiling: INSERT INTO event(EventTypeId) VALUES (?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1475)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1347)
            at com.example.kirukato.coolstdreg.DB.addRec(DB.java:116)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:137)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
04-10 17:50:09.315    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-10 17:50:09.315    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ЧЕКБОКСИКА ---- ---
04-10 17:50:09.315    4807-4807/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named Value
04-10 17:50:09.325    4807-4807/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting Value=1
    android.database.sqlite.SQLiteException: table event has no column named Value (code 1): , while compiling: INSERT INTO event(Value) VALUES (?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1475)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1347)
            at com.example.kirukato.coolstdreg.DB.addRec(DB.java:116)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:145)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
04-10 17:50:09.325    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК---1
04-10 17:51:09.359    4807-4807/com.example.kirukato.coolstdreg D/on pause﹕ /
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ТЫК!
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ РАБОТАЕ С МАНАМИ --- if (edtMan.getSelectedItem() != null) ---
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if МЫ ВНУТРИ  -----
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if -----   checkMan = true;
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if -----   checkMan = true;-- ОК
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ----if----- ПРИСВАИВАЕМ КУРСОРУ  cur = db.GetCatalogValueByName(.........);
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ Выводим edtMan.getSelectedItem().toString()------Кондратий
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ----МЫ В GetCatalogValueByName----
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg V/DB__ACTIVITY﹕ ---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ. select _id from man where name = 'Кондратий'
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg D/AndroidRuntime﹕ Shutting down VM
04-10 17:51:35.397    4807-4807/com.example.kirukato.coolstdreg W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4154d8b0)
04-10 17:51:35.407    4807-4807/com.example.kirukato.coolstdreg E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/com.example.kirukato.coolstdreg/databases/Allreg
            at android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:55)
            at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318)
            at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1261)
            at com.example.kirukato.coolstdreg.DB.GetCatalogValueByName(DB.java:156)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:96)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
04-10 17:56:35.417    4807-4807/com.example.kirukato.coolstdreg I/Process﹕ Sending signal. PID: 4807 SIG: 9
04-10 17:56:35.877    5436-5436/com.example.kirukato.coolstdreg D/libEGL﹕ loaded /vendor/lib/egl/libEGL_adreno.so
04-10 17:56:35.877    5436-5436/com.example.kirukato.coolstdreg D/libEGL﹕ loaded /vendor/lib/egl/libGLESv1_CM_adreno.so
04-10 17:56:35.897    5436-5436/com.example.kirukato.coolstdreg D/libEGL﹕ loaded /vendor/lib/egl/libGLESv2_adreno.so
04-10 17:56:35.897    5436-5436/com.example.kirukato.coolstdreg I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:316>: EGL 1.4
Теперь, кстати, ругается на каждую попытку добавления.
На тему "table event has no column named MeetingId", то такие столбцы есть. Уверен, что есть. Ctrl+c Ctrl+v не ошибаются.
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,083
10.04.2015, 20:59
Java
1
2
3
4
5
6
7
public void addRec(String name_table, String name_column, int txt) { 
    String table = name_table; // зачем дублировать?
    String column = name_column; // -||-
    ContentValues cv = new ContentValues(); 
    cv.put(column, txt); 
    mDB.insert(table, null, cv); 
}
Вот так надо
Java
1
2
3
4
5
public void addRec(String name_table, String name_column, int txt) { 
    ContentValues cv = new ContentValues(); 
    cv.put(name_column, txt); 
    mDB.insert(name_table, null, cv); 
}
MeetingId в посте выше я не нашел, нету такого поля.
0
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
10.04.2015, 22:27  [ТС]
Да, так логичнее, сей час поправлю.
Java
1
2
3
4
5
public void addRec(String name_table, String name_column, int txt) { 
    ContentValues cv = new ContentValues(); 
    cv.put(name_column, txt); 
    mDB.insert(name_table, null, cv); 
}
Не может быть такого. Вот поля таблицы и скрип по её созданию.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//event
    private static final String EVENT_TABLE = "event";
    public static final String EVENT_COLUMN_ID = "_id";
    public static final String EVENT_COLUMN_MAN = "ManId";
    public static final String EVENT_COLUMN_MEETING = "MeetingId";
    public static final String EVENT_COLUMN_EVENT_TYPE = "EventTypeId";
    public static final String EVENT_COLUMN_VALUE = "Value";
 
    private static final String EVENT_DB_CREATE =
            "create table " + EVENT_TABLE + "(" +
                    EVENT_COLUMN_ID + " integer primary key autoincrement, " +
                    EVENT_COLUMN_MAN + " integer" +
                    EVENT_COLUMN_MEETING + " integer" +
                    EVENT_COLUMN_EVENT_TYPE + " integer" +
                    EVENT_COLUMN_VALUE + " integer" +
                    ");";
 
@Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(DB_CREATE);
            db.execSQL(EVENT_TYPE_DB_CREATE);
            db.execSQL(MEETING_DB_CREATE);
            db.execSQL(EVENT_DB_CREATE);
 
        }
Добавлено через 49 минут
Опять же... Вот что происходит.
Prolog
1
2
3
4
5
6
7
V/EVENT__ACTIVITY﹕ ПРОВЕРЯЕМ ФЛАГИ НА 'TRUE' ПОСЛЕ ПИШЕМ В ТАБЛИЦУ 'event' --- if(checkMan != false & checkET != false & checkMeet != false) ---
V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MAN, cManID ); ---
V/EVENT__ACTIVITY﹕ ОК
V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID ); ---
E/SQLiteLog﹕ (1) table event has no column named MeetingId
E/SQLiteDatabase﹕ Error inserting MeetingId=1
android.database.sqlite.SQLiteException: table event has no column named MeetingId (code 1): , while compiling: INSERT INTO event(MeetingId) VALUES (?)
Далее ругается на это:
Prolog
1
2
at com.example.kirukato.coolstdreg.DB.addRec(DB.java:112)
at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:133)
В свою очередь на строку " mDB.insert(name_table, null, cv); " в функции, в классе DB.java
Java
1
2
3
4
5
public void addRec(String name_table, String name_column, int txt) {
        ContentValues cv = new ContentValues();
        cv.put(name_column, txt);
        mDB.insert(name_table, null, cv);
    }
И на строчку " db.addRec("event", "MeetingId", cMeetID ); " , в классе EventActivity.java, что как раз указывает на эту функцию. Но опять эта фишка всплыла. " db.addRec("event", "ManId", cManID );" - на это он не ругается. В логе он пишет "ОК".
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//Если все значения true, то записываем данные в таблицу "event" 
                if(checkMan != false & checkET != false & checkMeet != false){
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec(\"event\", DB.EVENT_COLUMN_MAN, cManID ); ---" );
                    db.addRec("event", "ManId", cManID );
                    Log.v(TAG, "ОК" );
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec(\"event\", DB.EVENT_COLUMN_MEETING, cMeetID ); ---" );
                    db.addRec("event", "MeetingId", cMeetID );
                    Log.v(TAG, "ОК" );
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec(\"event\", DB.EVENT_COLUMN_EVENT_TYPE, cETID ); ---" );
                    db.addRec("event", "EventTypeId", cETID );
                    Log.v(TAG, "ОК" );
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
11.04.2015, 08:06
Цитата Сообщение от Naomis Посмотреть сообщение
Ошибка "attempt to re-open an already-closed object" по прежнему возникает, но теперь где-то через каждые три попытки вбить данные в БД.
Возможно ты где-то в коде еще закрываешь базу.


Naomis, ты бы выложил уже весь свой проект - чай не такой большой он секретности, может погоняли бы его для проформы.
0
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
11.04.2015, 13:59  [ТС]
Armagedo, вот, пожалуйста. Проект пишется на андроид студио, если что.
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,083
11.04.2015, 16:37
Цитата Сообщение от Naomis Посмотреть сообщение
EVENT_COLUMN_MEETING + " integer" +
А запятые кто будет проставлять?
1
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
11.04.2015, 20:12  [ТС]
Rube, осознал ошибку, проставил запятые...
Java
1
2
3
4
5
6
7
8
  private static final String EVENT_DB_CREATE =
            "create table " + EVENT_TABLE + "(" +
                    EVENT_COLUMN_ID + " integer primary key autoincrement, " +
                    EVENT_COLUMN_MAN + " integer," +
                    EVENT_COLUMN_MEETING + " integer," +
                    EVENT_COLUMN_EVENT_TYPE + " integer," +
                    EVENT_COLUMN_VALUE + " integer" +
                    ");";
Но лог вот такой. По прежнему не видит/ не находит столбцы.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
04-11 20:00:44.220  29001-29001/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MAN, cManID ); ---
04-11 20:00:44.270  29001-29001/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-11 20:00:44.270  29001-29001/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID ); ---
04-11 20:00:44.270  29001-29001/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named MeetingId
04-11 20:00:44.270  29001-29001/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting MeetingId=1
    android.database.sqlite.SQLiteException: table event has no column named MeetingId (code 1): , while compiling: INSERT INTO event(MeetingId) VALUES (?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1475)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1347)
            at com.example.kirukato.coolstdreg.DB.addRec(DB.java:112)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:133)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
Заметил, что FATAL EXCEPTION: main происходет после "D/on pause﹕ /" Предполагаю, что моей программе не хватает onResume().
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
04-11 20:02:53.588  29001-29001/com.example.kirukato.coolstdreg W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4154d8b0)
04-11 20:02:53.588  29001-29001/com.example.kirukato.coolstdreg E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/com.example.kirukato.coolstdreg/databases/Allreg
            at android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:55)
            at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318)
            at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1261)
            at com.example.kirukato.coolstdreg.DB.GetCatalogValueByName(DB.java:152)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:96)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
11.04.2015, 20:20
Цитата Сообщение от Naomis Посмотреть сообщение
Armagedo, вот, пожалуйста. Проект пишется на андроид студио, если что.
В архиве по ссылке - только манифест 1,5кБ...
0
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
11.04.2015, 20:32  [ТС]
Armagedo, нужно скачать, при просмотре почему то такая проблема.

Добавлено через 10 минут
Поставил onResume и ошибка FATAL EXCEPTION: main больше не появлялась. Пока не появлялась.
Java
1
2
3
4
5
protected void onResume() {
        super.onResume();
        db.open();
        Log.d(TAG, " onResume()");
    }
Сей час попробую настроить вывод данных из БД, что бы посмотреть действительно ли не вливаются данные в БД. Так как лог отдно и тоже пишет, что:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
04-11 20:19:34.245  30520-30520/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MAN, cManID ); ---
04-11 20:19:34.286  30520-30520/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-11 20:19:34.286  30520-30520/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID ); ---
04-11 20:19:34.286  30520-30520/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named MeetingId
04-11 20:19:34.286  30520-30520/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting MeetingId=3
    android.database.sqlite.SQLiteException: table event has no column named MeetingId (code 1): , while compiling: INSERT INTO event(MeetingId) VALUES (?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1475)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1347)
            at com.example.kirukato.coolstdreg.DB.addRec(DB.java:112)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:133)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
04-11 20:19:34.286  30520-30520/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-11 20:19:34.286  30520-30520/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_EVENT_TYPE, cETID ); ---
04-11 20:19:34.286  30520-30520/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named EventTypeId
04-11 20:19:34.286  30520-30520/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting EventTypeId=1
    android.database.sqlite.SQLiteException: table event has no column named EventTypeId (code 1): , while compiling: INSERT INTO event(EventTypeId) VALUES (?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1475)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1347)
            at com.example.kirukato.coolstdreg.DB.addRec(DB.java:112)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:137)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
04-11 20:19:34.286  30520-30520/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-11 20:19:34.286  30520-30520/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ЧЕКБОКСИКА ---- ---
04-11 20:19:34.296  30520-30520/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named Value
04-11 20:19:34.296  30520-30520/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting Value=1
    android.database.sqlite.SQLiteException: table event has no column named Value (code 1): , while compiling: INSERT INTO event(Value) VALUES (?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1475)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1347)
            at com.example.kirukato.coolstdreg.DB.addRec(DB.java:112)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:145)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
04-11 20:19:34.296  30520-30520/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК---1
04-11 20:20:34.330  30520-30520/com.example.kirukato.coolstdreg D/on pause﹕ /
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
11.04.2015, 20:36
Naomis, в IDEA сходу не раскрутился у меня, а времени разбирать шо к чему не особо.

Проскочил по файлам и в EventActivity

Java
1
2
3
4
5
6
 public void onPause()
    {
        super.onPause();
        Log.d("on pause", " / ");
        db.close();
    }
Зачем?

Добавлено через 1 минуту
Ну, если есть желание, то отслеживай закрытие-открытие базы
0
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
11.04.2015, 20:52  [ТС]
Armagedo, то есть эта вещь теперь совсем не нужна?
Java
1
2
3
4
5
6
 public void onPause()
    {
        super.onPause();
        Log.d("on pause", " / ");
        db.close();
    }
Главный вопрос теперь что с данными в базе?.. Почему лог постоянно говорит нечто подобное?
Prolog
1
2
E/SQLiteLog﹕ (1) table event has no column named EventTypeId
E/SQLiteDatabase﹕ Error inserting EventTypeId=1
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
11.04.2015, 20:58
Цитата Сообщение от Naomis Посмотреть сообщение
Armagedo, то есть эта вещь теперь совсем не нужна?
я ж вчера написал и сутра повторил

Цитата Сообщение от Armagedo Посмотреть сообщение
Возможно ты где-то в коде еще закрываешь базу.
Цитата Сообщение от Naomis Посмотреть сообщение
Главный вопрос теперь что с данными в базе?.. Почему лог постоянно говорит нечто подобное?
Постараюсь завтра сутра раскрутить твой проект у себя и погонять.
Но не гарантирую - сам понимаешь, когда на кону стоит водка с закуской
1
8 / 8 / 4
Регистрация: 11.03.2015
Сообщений: 212
11.04.2015, 21:06  [ТС]
Armagedo, конечно понимаю, тут всё на добровольной основе. Просто у меня сроки поджимают, так как сдача диплома всё ближе и ближе , и любая помощь мне как нельзя кстати. Я очень благодарен всем, кто мне хоть как-то старался помочь. На сколько я понимаю ошибка "attempt to re-open an already-closed object" была решена, теперь нужно решить проблему с "android.database.sqlite.SQLiteException : table event has no column named", а для этого нужно думаю создать новую тему, что бы не путать людей. Ещё раз спасибо большое.
0
20 / 20 / 3
Регистрация: 15.05.2014
Сообщений: 80
12.04.2015, 08:09
Интересно тут у вас
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.04.2015, 08:09
Помогаю со студенческими работами здесь

Notes Error: Attempt To Reopen An Open Container
Переодически слетает (индекс) вида. При открытии выдает ошибку - Notes error: Attempt to reopen an open container. Помогает вид удалить и...

Open-closed principle
Является ли нарушением принципа открытости-закрытости, когда ты уже существующий класс, точнее его метод, модифицируешь, но при этом весь...

Warning: Attempt to modify property of non-object in и Warning: Attempt to modify property of non-object in
У меня ошибки: Warning: Attempt to modify property of non-object in Joomla/Registry/Registry.php on line 428 и Warning:...

There is already an open DataReader associated with this Command which must be closed first
Как приостановить выполнение предыдущего запроса, чтобы выполнилась 117 строка?

There is already an open DataReader associated with this Connection which must be closed first
There is already an open DataReader associated with this Connection which must be closed first MySql.Data.MySqlClient.MySqlException...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru