blackberry - SQLite keep expanding -


i'm new blackberry development , site. right now, i'm working on app retrieve data json service. in app should parse data database , save in 4 tables. parsed data , successful able create database , add first , second tables.

the problem i'm facing right is, second table in data base keep expanding. checked database in sql browser , discovered everytime click on app icon adds 700 rows table again.(ex. 700 becomes 1400) .

(only second table, first table works fine).

thank in advance

this code:

public void parsejsonresponceinbb(string jsoninstrformat) {     try {         jsonobject json = newjsonobject(jsoninstrformat);         jsonarray jarray = json.getjsonarray("tables");          (inti = 0; < jarray.length(); i++) {             //iterate through json array             jsonobject j = jarray.getjsonobject(i);             if (j.has("managers")) {                 add(new labelfield("managers has been added database"));                  jsonarray j2 = j.getjsonarray("managers");                  (intk = 0; k < j2.length(); ++k) {                     jsonobject mangersdetails = j2.getjsonobject(k);                     if (mangersdetails.has("fname")) {                         try {                             uri myuri =                                 uri.create                                 ("file:///sdcard/databases/sqlite_guide/"                                  + "mytestdatabase.db");                              d = databasefactory.openorcreate(myuri);                              statement st =                                 d.createstatement                                 ("create table managers ( "                                  + "fname text, " +                                  "lname text, " + "id text," + "type text )");                              st.prepare();                             st.execute();                             st.close();                             d.close();                         }                         catch(exception e) {                             system.out.println(e.getmessage());                             e.printstacktrace();                         }                          try {                             uri myuri =                                 uri.create                                 ("file:///sdcard/databases/sqlite_guide/"                                  + "mytestdatabase.db");                              d = databasefactory.open(myuri);                              statement st =                                 d.createstatement                                 ("insert managers(fname, lname, id, type) "                                  + "values (?,?,?,?)");                              st.prepare();                              (intx = 0; x < j2.length(); x++) {                                 jsonobject f = j2.getjsonobject(x);                                 //add(new labelfield ("f"));                                 st.bind(1, f.getstring("fname"));                                 st.bind(2, f.getstring("lname"));                                 st.bind(3, f.getstring("id"));                                 st.bind(4, f.getstring("type"));                                 st.execute();                                 st.reset();                             }                             d.close();                         }                         catch(exception e) {                             system.out.println(e.getmessage());                             e.printstacktrace();                         }                     }                 }             }         }     }     catch(jsonexception e) {         e.printstacktrace();     } }      //owners method public voidparsejsonresponceinbb1(string jsoninstrformat) {     try {         jsonobject json = newjsonobject(jsoninstrformat);         jsonarray jarray = json.getjsonarray("tables");          (inti = 0; < jarray.length(); i++) {             //iterate through json array             jsonobject j = jarray.getjsonobject(i);             if (j.has("owners")) {                 add(new labelfield("owners has been added database"));                 jsonarray j2 = j.getjsonarray("owners");                 (intk = 0; k < j2.length(); ++k) {                     jsonobject ownersdetails = j2.getjsonobject(k);                     if (ownersdetails.has("fname")) {                         try {                             statement st =                                 d.createstatement                                 ("create table owners ( "                                  + "fname text, " +                                  "lname text, " + "id text," + "type text )");                             st.prepare();                             st.execute();                             st.close();                             d.close();                         }                         catch(exception e) {                             system.out.println(e.getmessage());                             e.printstacktrace();                         }                          try {                             statement st =                                 d.createstatement                                 ("insert owners(fname, lname, id, type) "                                  + "values (?,?,?,?)");                              st.prepare();                             (intx = 0; x < j2.length(); x++) {                                 jsonobject f = j2.getjsonobject(x);                                 //add(new labelfield ("f"));                                 st.bind(1, f.getstring("fname"));                                 st.bind(2, f.getstring("lname"));                                 st.bind(3, f.getstring("id"));                                 st.bind(4, f.getstring("type"));                                 st.execute();                                 st.reset();                             }                             d.close();                         }                         catch(exception e) {                             system.out.println(e.getmessage());                             e.printstacktrace();                         }                     }                 }             }         }     }     catch(jsonexception e) {         e.printstacktrace();     } } 

it depends on goals here. if want replace data in database each time json query runs, should add sqlite command remove existing rows newly fetched ones coming in via json.

if want keep types of records unique, should add index sqlite table. 'id' column candidate this. you'll have experiments make sure conflict handled correctly - may abort entire transaction. "insert or replace" useful in situation.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -