Форум программистов, компьютерный форум CyberForum.ru

SQLiteDatabase как обновить таблицы? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Перевод double в byte[] http://www.cyberforum.ru/android-dev/thread1737435.html
Я нашел такой код. double d = 65.43; byte output = new byte; long lng = Double.doubleToLongBits(d); for(int i = 0; i < 8; i++) output = (byte)((lng >> ((7 - i) * 8)) & 0xff); Этот код переводит double в byte, а как тогда из этого массива при помощи тех же операторов восстановить double? Мне просто нужно double разложить на байты отправить на сервер и там обратно...
Программирование Android Приведение типов? Привет. В коде встретил такую штуку TextView tw = (TextView) findViewById (R.id.DisplayTextView); Интересуют скобки после присвоения. Убрал их, код перестал работать. Для чего они? Приведение типов? Если так, то зачем приводить тип к себе же? Или я не правильно понял? Разъясните пожалуйста. http://www.cyberforum.ru/android-dev/thread1737323.html
Программирование Android Не отображается текст
Добрый день! такая проблема, android:text=". Только благородные и натуральные ткани используются при пошиве всех моделей платьев- это шелк, шифон, итальянский тюль и тафта. Кружево создано по оригинальным рисункам и не встречается больше ни на одном платье в мире. Все коллекции декорируются уникальными отделками с использованием кружев и ручной вышивки. Сейчас коллекции бренда включают в себя...
Настройка ADT Программирование Android
Добрый день. Начинаю учиться. Первый раз поставил Eclips, SDK, JDK, etc. В Eclips жмакал Help/Install New Software. Устанавливал ADT - https://dl-ssl.google.com/android/eclipse/ (долго качалось, но установилось). Под окошком макета вылазит такая гадость: "This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in". Еще раз пытался установить...
Программирование Android UnauthorizedAccessException при записи файла http://www.cyberforum.ru/android-dev/thread1737196.html
Пытаюсь создать файл следующим образом. Вылетает UnauthorizedAccessException... Вопрос: что я делаю не так? public void writeFile() { // var path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); // var filename = Path.Combine(path, "newFile.png"); string filename = "filename.xml"; var path =...
Программирование Android Layout Здравствуйте! На layout кидаю изображение через ImaageView, при эмуляции по бокам экрана есть отступ.ImageView (по содержимому,вставлял изображение разных размеров для интереса,хотя заранее подготовил для именно этого экрана.) Пендинги все убрал,ниже прилагаю файлы. Манифест <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... подробнее

Показать сообщение отдельно
sausagerus
226 / 3 / 0
Регистрация: 12.07.2014
Сообщений: 51

SQLiteDatabase как обновить таблицы? - Программирование Android

17.05.2016, 18:15. Просмотров 77. Ответов 1
Метки (Все метки)

Привет, снова я )) Данные в базу закачиваются из других классов, то есть всё работает, но только если по отдельности открывать активити...
Пример: я открываю вкладку "адреса" и в таблицу "адреса" сохраняются данные, затем открываю "продукты" и в таблицу "продукты" скачиваю данные с json.
Нужно сделать так, чтобы в активити "настройки" по нажатию кнопки, обновлялись обе таблицы сразу либо же заполнялись заного, если их нет.
Как обновить несколько таблиц сразу в одной БД ?
Вот что есть:
Класс Database Handler к нему имеется соответствующий Listener.
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
package de.magnum_gmbh.mw;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
 
import java.util.ArrayList;
 
/**
 * Created by vklamm on 20.04.2016.
 */
public class DBHandler extends SQLiteOpenHelper implements DBListener {
 
    private static final int DB_VERSION = 2;
    private static final String DB_NAME = "AddressesDB.db";
 
    //Addresses
    private static final String TABLE_NAME_ADDRESSES = "addresses_table";
    private static final String KEY_ID_ADDRESSES = "_id";
    private static final String KEY_NAME1_ADDRESSES = "_name1";
    private static final String KEY_NAME2_ADDRESSES = "_name2";
    private static final String KEY_NAME3_ADDRESSES = "_name3";
    private static final String KEY_NUMBER_ADDRESSES = "_number";
    private static final String KEY_STREET_ADDRESSES = "_street";
    private static final String KEY_INDEX_ADDRESSES = "_index";
    private static final String KEY_CITY_ADDRESSES = "_city";
    private static final String KEY_COUNTRY_ADDRESSES = "_country";
    private static final String KEY_PHONE_ADDRESSES = "_phone";
    private static final String KEY_PHONE2_ADDRESSES = "_phone2";
    private static final String KEY_FAX_ADDRESSES = "_fax";
    private static final String KEY_EMAIL_ADDRESSES = "_email";
    private static final String KEY_EMAIL2_ADDRESSES = "_email2";
 
    //Articles
    private static final String TABLE_NAME_ARTICLES = "articles_table";
    private static final String KEY_ID_ARTICLES = "_id";
    private static final String KEY_ARTICLE_NUMBER_ARTICLES = "_article_number";
    private static final String KEY_SEQUENCE_NUMBER_ARTICLES = "_sequence_number";
    private static final String KEY_WINE_NUMBER_ARTICLES = "_wine_number";
    private static final String KEY_OFFICIAL_APPROVAL_NUMBER_ARTICLES = "_official_approval_number";
    private static final String KEY_ARTICLE_SALES_DESIGNATION_ARTICLES = "_article_sales_designation";
    private static final String KEY_VINTAGE_ARTICLES = "_vintage";
    private static final String KEY_STOCK_ARTICLES = "_stock";
    private static final String KEY_RESERVED_ARTICLES = "_reserved";
    private static final String KEY_FREE_ARTICLES = "_free";
    private static final String KEY_GRAPE_VARIETY_ARTICLES = "_grape_variety";
    private static final String KEY_QUALITY_LEVEL_ARTICLES = "_quality_level";
    private static final String KEY_VINE_LOCATION_ARTICLES = "_vine_location";
 
    private SQLiteDatabase db;
 
 
 
    //Addresses
    String CREATE_TABLE_ADDRESSES = "CREATE TABLE " + TABLE_NAME_ADDRESSES + " ("
            + KEY_ID_ADDRESSES + " INTEGER PRIMARY KEY, " + KEY_NAME1_ADDRESSES + " TEXT, "
            + KEY_NAME2_ADDRESSES + " TEXT, " + KEY_NAME3_ADDRESSES + " TEXT, "+ KEY_NUMBER_ADDRESSES + " TEXT, "
            + KEY_STREET_ADDRESSES + " TEXT, " + KEY_INDEX_ADDRESSES + " TEXT, " + KEY_CITY_ADDRESSES + " TEXT, "
            + KEY_COUNTRY_ADDRESSES + " TEXT, " + KEY_PHONE_ADDRESSES + " TEXT, " + KEY_PHONE2_ADDRESSES + " TEXT, "
            + KEY_FAX_ADDRESSES + " TEXT, " + KEY_EMAIL_ADDRESSES + " TEXT, " + KEY_EMAIL2_ADDRESSES + " TEXT)";
 
    //Addresses
    String DROP_TABLE_ADDRESSES = "DROP TABLE IF EXISTS " + TABLE_NAME_ADDRESSES;
 
    //Articles
    String CREATE_TABLE_ARTICLES = "CREATE TABLE " + TABLE_NAME_ARTICLES + " ("
            + KEY_ID_ARTICLES + " INTEGER PRIMARY KEY, " + KEY_ARTICLE_NUMBER_ARTICLES + " TEXT, "
            + KEY_SEQUENCE_NUMBER_ARTICLES + " TEXT, " + KEY_WINE_NUMBER_ARTICLES + " TEXT, "
            + KEY_OFFICIAL_APPROVAL_NUMBER_ARTICLES + " TEXT, " + KEY_ARTICLE_SALES_DESIGNATION_ARTICLES + " TEXT, "
            + KEY_VINTAGE_ARTICLES + " TEXT, " + KEY_STOCK_ARTICLES + " TEXT, " + KEY_RESERVED_ARTICLES + " TEXT, "
            + KEY_FREE_ARTICLES + " TEXT, " + KEY_GRAPE_VARIETY_ARTICLES + " TEXT, "
            + KEY_QUALITY_LEVEL_ARTICLES + " TEXT," + KEY_VINE_LOCATION_ARTICLES + " TEXT)";
 
    //Articles
    String DROP_TABLE_ARTICLES = "DROP TABLE IF EXISTS " + TABLE_NAME_ARTICLES;
 
  
    //Addresses
    @Override
    public void addAddress(Address address) {
        SQLiteDatabase db = this.getWritableDatabase();
        try{
            ContentValues values = new ContentValues();
            values.put(KEY_NAME1_ADDRESSES, address.getName1());
            values.put(KEY_NAME2_ADDRESSES, address.getName2());
            values.put(KEY_NAME3_ADDRESSES, address.getName3());
            values.put(KEY_NUMBER_ADDRESSES, address.getNumber());
            values.put(KEY_STREET_ADDRESSES, address.getStreet());
            values.put(KEY_INDEX_ADDRESSES, address.getIndex());
            values.put(KEY_CITY_ADDRESSES, address.getCity());
            values.put(KEY_COUNTRY_ADDRESSES, address.getCountry());
            values.put(KEY_PHONE_ADDRESSES, address.getPhone());
            values.put(KEY_PHONE2_ADDRESSES, address.getPhone2());
            values.put(KEY_FAX_ADDRESSES, address.getFax());
            values.put(KEY_EMAIL_ADDRESSES, address.getEmail());
            values.put(KEY_EMAIL2_ADDRESSES, address.getEmail2());
 
            db.insert(TABLE_NAME_ADDRESSES, null, values);
            db.close();
        }catch (Exception e){
            Log.e("problem" , e+ "");
        }
    }
 
    //Articles
    @Override
    public void addArticle(Article article){
        SQLiteDatabase db = this.getWritableDatabase();
        try{
            ContentValues values = new ContentValues();
            values.put(KEY_ARTICLE_NUMBER_ARTICLES, article.getArticle_number());
            values.put(KEY_SEQUENCE_NUMBER_ARTICLES, article.getSequence_number());
            values.put(KEY_WINE_NUMBER_ARTICLES, article.getWine_number());
            values.put(KEY_OFFICIAL_APPROVAL_NUMBER_ARTICLES, article.getOfficial_approval_number());
            values.put(KEY_ARTICLE_SALES_DESIGNATION_ARTICLES, article.getArticle_sales_designation());
            values.put(KEY_VINTAGE_ARTICLES, article.getVintage());
            values.put(KEY_STOCK_ARTICLES, article.getStock());
            values.put(KEY_RESERVED_ARTICLES, article.getReserved());
            values.put(KEY_FREE_ARTICLES, article.getFree());
            values.put(KEY_GRAPE_VARIETY_ARTICLES, article.getGrape_variety());
            values.put(KEY_QUALITY_LEVEL_ARTICLES, article.getQuality_level());
            values.put(KEY_VINE_LOCATION_ARTICLES, article.getVine_location());
 
            db.insert(TABLE_NAME_ARTICLES, null, values);
            db.close();
        }catch (Exception e){
            Log.e("article problem", e+ "");
        }
    }
 
    //Addresses
    @Override
    public ArrayList<Address> getAllAddresses() {
        SQLiteDatabase db = this.getReadableDatabase();
        ArrayList<Address> addressList = null;
        try{
            addressList = new ArrayList<Address>();
            String QUERY = "SELECT * FROM " + TABLE_NAME_ADDRESSES;
            Cursor cursor = db.rawQuery(QUERY, null);
            if(!cursor.isLast()){
                while(cursor.moveToNext()){
                    Address address = new Address();
                    address.setId(cursor.getInt(0));
                    address.setName1(cursor.getString(1));
                    address.setName2(cursor.getString(2));
                    address.setName3(cursor.getString(3));
                    address.setNumber(cursor.getString(4));
                    address.setStreet(cursor.getString(5));
                    address.setIndex(cursor.getString(6));
                    address.setCity(cursor.getString(7));
                    address.setCountry(cursor.getString(8));
                    address.setPhone(cursor.getString(9));
                    address.setPhone2(cursor.getString(10));
                    address.setFax(cursor.getString(11));
                    address.setEmail(cursor.getString(12));
                    address.setEmail2(cursor.getString(13));
 
                    addressList.add(address);
                }
            }
            db.close();
        }catch (Exception e){
            Log.e("error" , e+"");
        }
        return addressList;
    }
 
    //Articles
    @Override
    public ArrayList<Article> getAllArticles() {
        SQLiteDatabase db = this.getReadableDatabase();
        ArrayList<Article> articleList = null;
        try{
            articleList = new ArrayList<Article>();
            String QUERY = "SELECT * FROM " + TABLE_NAME_ARTICLES;
            Cursor cursor = db.rawQuery(QUERY, null);
            if (!cursor.isLast()){
                while(cursor.moveToNext()){
                    Article article = new Article();
                    article.setId(cursor.getInt(0));
                    article.setArticle_number(cursor.getString(1));
                    article.setSequence_number(cursor.getString(2));
                    article.setWine_number(cursor.getString(3));
                    article.setOfficial_approval_number(cursor.getString(4));
                    article.setArticle_sales_designation(cursor.getString(5));
                    article.setVintage(cursor.getString(6));
                    article.setStock(cursor.getString(7));
                    article.setReserved(cursor.getString(8));
                    article.setFree(cursor.getString(9));
                    article.setGrape_variety(cursor.getString(10));
                    article.setQuality_level(cursor.getString(11));
                    article.setVine_location(cursor.getString(12));
 
                    articleList.add(article);
                }
            }
            db.close();
        }catch (Exception e){
            Log.e("article error", e+ "");
        }
        return articleList;
    }
 
 
    //Addresses
    @Override
    public int getAddressCount() {
        int num = 0;
        SQLiteDatabase db = this.getReadableDatabase();
        try{
            String QUERY = "SELECT * FROM " + TABLE_NAME_ADDRESSES;
            Cursor cursor = db.rawQuery(QUERY, null);
            num = cursor.getCount();
            db.close();
            return num;
        }catch (Exception e){
            Log.e("error" ,e+"");
        }
        return 0;
    }
 
 
    //Articles
    @Override
    public int getArticleCount() {
        int num = 0;
        SQLiteDatabase db = this.getReadableDatabase();
        try{
            String QUERY = "SELECT * FROM " + TABLE_NAME_ARTICLES;
            Cursor cursor = db.rawQuery(QUERY, null);
            num = cursor.getCount();
            db.close();
            return num;
        }catch (Exception e){
            Log.e("article error" ,e+"");
        }
        return 0;
    }
 
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE_ADDRESSES);
        db.execSQL(CREATE_TABLE_ARTICLES);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL(DROP_TABLE_ADDRESSES);
        db.execSQL(DROP_TABLE_ARTICLES);
        onCreate(db);
    }
 
    public DBHandler(Context context){
        super(context, DB_NAME, null, DB_VERSION);
    }
 
 
}

вызываю этот класс
Java
1
2
SQLiteDatabase db;
DBHandler handler.onCreate(db);
и вылетает ошибка
E/AndroidRuntime: FATAL EXCEPTION: main
android.database.sqlite.SQLiteException: table addresses_table already exists (code 1): , while compiling: CREATE TABLE addresses_table
Если в CREATE TABLE дописать IF NOT EXISTS то ошибка уходит, но и ничего не происходит таблицы не обновляются и не создаются заного...
Need help!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru