Fabian K.
- Forum-Beiträge: 5
11.03.2011, 23:30:13 via Website
11.03.2011 23:30:13 via Website
Tag zusammen,
Ich bekomme von einem REST-Service im JSON-Format eine ganze Reihe an Daten. Diese sollen Vorhandene Datensätze in meiner Datenbank teilweise updaten.
Die Log-Ausgabe für zwei Schleifendurchläufe sieht so aus:
Wenn ich das SQL-Stmt. aus dem Log kopiere, und in der Konsole einfüge, funktionierts!
Hab's auch schon mit ContentValues und update(...) versucht - selbes Ergebnis...
Irgendjemand eine Idee woran das liegt und was ich dagegen tun könnte?
Vielen Dank schon mal für eure Hilfe!
VG
// In einer anderes Activity war noch der ChildCursor vom CursorTreeAdapter der ExpandableList geöffnet... nachdem ich den in der onDestroy() geschlossen habe funktionierts nun!
Ich bekomme von einem REST-Service im JSON-Format eine ganze Reihe an Daten. Diese sollen Vorhandene Datensätze in meiner Datenbank teilweise updaten.
1public void setDetails(JSONArray jsonArray) {
2 int timestamp = 0;
3 String sql = null;
4 String spaltenName = null;
5 String uuid = null;
6 String schluessel = null, value = null;
7
8 dbConn = db.getWritableDatabase();
9
10 try {
11 for(int i = 0; i < jsonArray.length(); i++) {
12 JSONObject details = jsonArray.getJSONObject(i);
13 value = details.getString("value");
14 timestamp = details.getInt("timestamp");
15
16 JSONObject detailsPK = details.getJSONObject("detailsPK");
17 uuid = detailsPK.getString("uuid");
18 schluessel = detailsPK.getString("schluessel");
19
20 if(schluessel.equals("power")) spaltenName = DetailsTbl.POWER;
21 else if(schluessel.equals("State")) spaltenName = DetailsTbl.STATE;
22 else if(schluessel.equals("Phase")) spaltenName = DetailsTbl.PHASE;
23 else if(schluessel.equals("Cooking Function")) spaltenName = DetailsTbl.FUNCTION;
24 else if(schluessel.equals("Temperature")) spaltenName = DetailsTbl.TEMP;
25 else spaltenName = null;
26
27 Log.d(TAG, "schluessel: " + schluessel);
28 Log.d(TAG, "value: " + value);
29 Log.d(TAG, "uuid: " + uuid);
30 Log.d(TAG, "timestamp: " + timestamp);
31 Log.d(TAG, "spaltenName: " + spaltenName);
32 if(spaltenName == null) {
33 sql = null;
34 } else {
35 sql = "UPDATE " + DetailsTbl.TABLE_NAME + " " +
36 "SET " + spaltenName + " = '" + value + "' , " + DetailsTbl.TIMESTAMP + " = '" + timestamp + "' " +
37 "WHERE " + DetailsTbl.UUID + " = '" + uuid + "'";
38 Log.d(TAG, "sql: " + sql);
39 Log.d(TAG, "*************************");
40 dbConn.execSQL(sql);
41 }
42 }
43 } catch (JSONException e) {
44 e.printStackTrace();
45 } catch (Exception e) {
46 e.printStackTrace();
47 }
48 }
2 int timestamp = 0;
3 String sql = null;
4 String spaltenName = null;
5 String uuid = null;
6 String schluessel = null, value = null;
7
8 dbConn = db.getWritableDatabase();
9
10 try {
11 for(int i = 0; i < jsonArray.length(); i++) {
12 JSONObject details = jsonArray.getJSONObject(i);
13 value = details.getString("value");
14 timestamp = details.getInt("timestamp");
15
16 JSONObject detailsPK = details.getJSONObject("detailsPK");
17 uuid = detailsPK.getString("uuid");
18 schluessel = detailsPK.getString("schluessel");
19
20 if(schluessel.equals("power")) spaltenName = DetailsTbl.POWER;
21 else if(schluessel.equals("State")) spaltenName = DetailsTbl.STATE;
22 else if(schluessel.equals("Phase")) spaltenName = DetailsTbl.PHASE;
23 else if(schluessel.equals("Cooking Function")) spaltenName = DetailsTbl.FUNCTION;
24 else if(schluessel.equals("Temperature")) spaltenName = DetailsTbl.TEMP;
25 else spaltenName = null;
26
27 Log.d(TAG, "schluessel: " + schluessel);
28 Log.d(TAG, "value: " + value);
29 Log.d(TAG, "uuid: " + uuid);
30 Log.d(TAG, "timestamp: " + timestamp);
31 Log.d(TAG, "spaltenName: " + spaltenName);
32 if(spaltenName == null) {
33 sql = null;
34 } else {
35 sql = "UPDATE " + DetailsTbl.TABLE_NAME + " " +
36 "SET " + spaltenName + " = '" + value + "' , " + DetailsTbl.TIMESTAMP + " = '" + timestamp + "' " +
37 "WHERE " + DetailsTbl.UUID + " = '" + uuid + "'";
38 Log.d(TAG, "sql: " + sql);
39 Log.d(TAG, "*************************");
40 dbConn.execSQL(sql);
41 }
42 }
43 } catch (JSONException e) {
44 e.printStackTrace();
45 } catch (Exception e) {
46 e.printStackTrace();
47 }
48 }
Die Log-Ausgabe für zwei Schleifendurchläufe sieht so aus:
1schluessel: power
2value: 4.0
3uuid: ec27d88e-378c-4fb0-8749-b174902a2e28
4timestamp: 1297965132
5spaltenName: power
6sql: UPDATE details SET power = '4.0' , timestamp = '1297965132' WHERE uuid = 'ec27d88e-378c-4fb0-8749-b174902a2e28'
7*************************
8schluessel: power
9value: 0.0
10uuid: ab9519db-7a14-4e43-ac3a-ade723802194
11timestamp: 1297965132
12spaltenName: power
13sql: UPDATE details SET power = '0.0' , timestamp = '1297965132' WHERE uuid = 'ab9519db-7a14-4e43-ac3a-ade723802194'
14*************************
2value: 4.0
3uuid: ec27d88e-378c-4fb0-8749-b174902a2e28
4timestamp: 1297965132
5spaltenName: power
6sql: UPDATE details SET power = '4.0' , timestamp = '1297965132' WHERE uuid = 'ec27d88e-378c-4fb0-8749-b174902a2e28'
7*************************
8schluessel: power
9value: 0.0
10uuid: ab9519db-7a14-4e43-ac3a-ade723802194
11timestamp: 1297965132
12spaltenName: power
13sql: UPDATE details SET power = '0.0' , timestamp = '1297965132' WHERE uuid = 'ab9519db-7a14-4e43-ac3a-ade723802194'
14*************************
Wenn ich das SQL-Stmt. aus dem Log kopiere, und in der Konsole einfüge, funktionierts!
Hab's auch schon mit ContentValues und update(...) versucht - selbes Ergebnis...
Irgendjemand eine Idee woran das liegt und was ich dagegen tun könnte?
Vielen Dank schon mal für eure Hilfe!
VG
// In einer anderes Activity war noch der ChildCursor vom CursorTreeAdapter der ExpandableList geöffnet... nachdem ich den in der onDestroy() geschlossen habe funktionierts nun!
— geändert am 12.03.2011, 00:06:25
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.