This is a migrated thread and some comments may be shown as answers.

Adding record in sqlite Problem

1 Answer 81 Views
AppBuilder extension for Visual Studio
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Senol
Top achievements
Rank 1
Senol asked on 27 Mar 2014, 02:04 PM
Hello,

I use your appbuilder which is
licensed and also I wanna make a native application which will work both of
Iphone and android devices. Actually, I don't have any problem until here, I
make the program by using visual studio and jquery mobile.

Mine will be a getting order
application, thus I want to keep records, and after that I want to work with
these records.

I reached an information that if
it work with sqlite, then it able to more performances, from my all searching.
Because of that, I am using sqlite. I have been wroten whole those, because
maybe I get another recommendation from you.


Let me tell you my actual issue;

I connect such as follows;


var app = {};

app.db = null;

 

app.openDb = function () {

    if
(window.sqlitePlugin !== undefined) {

        app.db
= window.sqlitePlugin.openDatabase("EMS", "1.0", "Ems
local database", 10000000);

 

    } else {

       
// For debugging in simulator fallback to native SQL Lite

       
app.db = window.openDatabase("EMS", "1.0", "Cordova
Demo", 10000000);

   }

};

 

I create tables and indexes as
follows;

 

 

app.createTable = function () {

 

   
app.db.transaction(function (tx) {

       
//alert("create");

       
tx.executeSql("CREATE TABLE IF NOT EXISTS STOK_ANA_GRUPLARI (san_RECno
INTEGER PRIMARY KEY ASC, san_kod VARCHAR(50), san_isim VARCHAR(100))", [],
app.onSuccess, app.onError);

       
tx.executeSql("CREATE TABLE IF NOT EXISTS STOK_ALT_GRUPLARI (sta_RECno
INTEGER PRIMARY KEY ASC, sta_kod VARCHAR(50), sta_isim VARCHAR(100),
sta_ana_grup_kod VARCHAR(100))", []);

       
tx.executeSql("CREATE TABLE IF NOT EXISTS STOK_MARKALARI (mrk_RECno
INTEGER PRIMARY KEY ASC, mrk_kod VARCHAR(50), mrk_ismi VARCHAR(100))", [],
app.onSuccess, app.onError);

       
tx.executeSql("CREATE TABLE IF NOT EXISTS STOK_MODEL_TANIMLARI (mdl_RECno
INTEGER PRIMARY KEY ASC, mdl_kodu VARCHAR(50), mdl_ismi VARCHAR(100))",
[], app.onSuccess, app.onError);

 

       
tx.executeSql("CREATE TABLE IF NOT EXISTS STOKLAR (sto_RECno INTEGER
PRIMARY KEY ASC, sto_kod VARCHAR(25),sto_isim VARCHAR(50),sto_kisa_ismi
VARCHAR(25),sto_yabanci_isim VARCHAR(50),sto_sat_cari_kod VARCHAR(25),sto_cins
INTEGER,sto_doviz_cinsi INTEGER,sto_detay_takip INTEGER,sto_birim1_ad
VARCHAR(10),sto_birim1_katsayi float,sto_birim2_ad
VARCHAR(10),sto_birim2_katsayi float,sto_birim3_ad
VARCHAR(10),sto_birim3_katsayi float,sto_birim4_ad
VARCHAR(10),sto_birim4_katsayi float,sto_toptan_vergi INTEGER,sto_satis_dursun
INTEGER,sto_siparis_dursun INTEGER,sto_kategori_kodu
VARCHAR(25),sto_altgrup_kod VARCHAR(25),sto_anagrup_kod
VARCHAR(25),sto_sektor_kodu VARCHAR(25),sto_reyon_kodu
VARCHAR(25),sto_muhgrup_kodu VARCHAR(25),sto_ambalaj_kodu
VARCHAR(25),sto_marka_kodu VARCHAR(25),sto_beden_kodu VARCHAR(25),sto_renk_kodu
VARCHAR(25),sto_model_kodu VARCHAR(25),sto_bedenli_takip
BOOLEAN,sto_renkDetayli BOOLEAN,sto_special3
VARCHAR(4),sto_detay_takibinde_depo_kontrolu_fl BOOLEAN,sto_malkabul_dursun
INTEGER,sto_tasfiyede BOOLEAN,sto_pasif_fl BOOLEAN,sto_min_stok float,sto_birim1_agirlik
float,sto_birim2_agirlik float,sto_birim3_agirlik float,sto_birim4_agirlik
float,sto_SKT_fl BOOLEAN,sto_kanban_kasa_miktari float,sto_RafOmru
INTEGER)", [], app.onSuccess, app.onError);

 

       
tx.executeSql("CREATE TABLE IF NOT EXISTS STOK_SATIS_FIYAT_LISTELERI
(sfiyat_RECno INTEGER PRIMARY KEY ASC, sfiyat_stokkod VARCHAR(50),
sfiyat_listesirano INT, sfiyat_deposirano INT,sfiyat_fiyati
FLOAT,sfiyat_iskontokod VARCHAR(50),sfiyat_doviz INT)", [], app.onSuccess,
app.onError);

 

       
tx.executeSql("CREATE TABLE IF NOT EXISTS STOK_SATIS_FIYAT_LISTE_TANIMLARI
(sfl_RECno INTEGER PRIMARY KEY ASC, sfl_sirano INT, sfl_kdvdahil BIT)",
[], app.onSuccess, app.onError);

 

       
tx.executeSql("CREATE TABLE IF NOT EXISTS KUR_ISIMLERI (Kur_ID INTEGER
PRIMARY KEY ASC,Kur_No INT, Kur_sembol VARCHAR(100), Kur_adi
VARCHAR(100))", [], app.onSuccess, app.onError);

 

       
tx.executeSql("CREATE TABLE IF NOT EXISTS KDV_TANIMLARI (KID INTEGER
PRIMARY KEY ASC, KDVPntr INT, KDVOran FLOAT, KDVAciklama VARCHAR(50))",
[], app.onSuccess, app.onError);

 

       
//tx.executeSql("CREATE UNIQUE INDEX IF NOT EXISTS index_stok_id ON
STOKLAR (sto_RECno)", [], app.onSuccess, app.onError);

       
tx.executeSql("CREATE UNIQUE INDEX IF NOT EXISTS index_stok_kod ON STOKLAR
(sto_kod)", [], app.onSuccess, app.onError);

       
tx.executeSql("CREATE INDEX IF NOT EXISTS index_stok_isim ON STOKLAR
(sto_isim)", [], app.onSuccess, app.onError);

       
tx.executeSql("CREATE INDEX IF NOT EXISTS index_stok_gruplar ON STOKLAR
(sto_anagrup_kod,sto_altgrup_kod,sto_marka_kodu,sto_model_kodu)", [],
app.onSuccess, app.onError);

 

       
//tx.executeSql("CREATE UNIQUE INDEX IF NOT EXISTS index_fiyat_id ON
STOK_SATIS_FIYAT_LISTELERI (sfiyat_RECno)", [], app.onSuccess,
app.onError);

       
tx.executeSql("CREATE INDEX IF NOT EXISTS index_fiyat_gruplar ON
STOK_SATIS_FIYAT_LISTELERI
(sfiyat_stokkod,sfiyat_listesirano,sfiyat_deposirano)", [], app.onSuccess,
app.onError);

 

      
//tx.executeSql("CREATE UNIQUE INDEX IF NOT EXISTS index_fiyattanim_id ON
STOK_SATIS_FIYAT_LISTE_TANIMLARI (sfl_RECno)", [], app.onSuccess,
app.onError);

       
tx.executeSql("CREATE INDEX IF NOT EXISTS index_fiyattanim_sira ON
STOK_SATIS_FIYAT_LISTE_TANIMLARI (sfl_sirano)", [], app.onSuccess,
app.onError);

 

       
//tx.executeSql("CREATE UNIQUE INDEX IF NOT EXISTS index_kur_id ON
KUR_ISIMLERI (Kur_ID)", [], app.onSuccess, app.onError);

       
tx.executeSql("CREATE INDEX IF NOT EXISTS index_kur_grup ON KUR_ISIMLERI
(Kur_No,Kur_sembol)", [], app.onSuccess, app.onError);

 

       
//tx.executeSql("CREATE UNIQUE INDEX IF NOT EXISTS index_kdv_id ON
KDV_TANIMLARI (KID)", [], app.onSuccess, app.onError);

       
tx.executeSql("CREATE INDEX IF NOT EXISTS index_kdv_grup ON KDV_TANIMLARI
(KDVPntr)", [], app.onSuccess, app.onError);

       


        tx.executeSql("CREATE
INDEX IF NOT EXISTS index_anagrup_kod ON STOK_ANA_GRUPLARI (san_kod)", [],
app.onSuccess, app.onError);

 

    });

};

 

After that I add coming records
from the web service as follows;

 

pp.addData = function (data) {

   
alert("Add dataya geldi");

   
app.db.transaction(

       
function (tx) {

           
try {

               
alert("Stoklar Ekleniyor");

               
for (var i = 0; i < data.Stoklar.length; i++) {

                   
var stok = data.Stoklar[i];

                   
tx.executeSql("INSERT INTO STOKLAR(sto_kod, sto_isim, sto_kisa_ismi,
sto_yabanci_isim, sto_sat_cari_kod, sto_cins, sto_doviz_cinsi, sto_detay_takip,
sto_birim1_ad, sto_birim1_katsayi, sto_birim2_ad, sto_birim2_katsayi, sto_birim3_ad,
sto_birim3_katsayi, sto_birim4_ad, sto_birim4_katsayi, sto_toptan_vergi,
sto_satis_dursun, sto_siparis_dursun, sto_kategori_kodu, sto_altgrup_kod,
sto_anagrup_kod, sto_sektor_kodu, sto_reyon_kodu, sto_muhgrup_kodu,
sto_ambalaj_kodu, sto_marka_kodu, sto_beden_kodu, sto_renk_kodu,
sto_model_kodu, sto_bedenli_takip, sto_renkDetayli, sto_special3,
sto_detay_takibinde_depo_kontrolu_fl, sto_malkabul_dursun, sto_tasfiyede,
sto_pasif_fl, sto_min_stok, sto_birim1_agirlik, sto_birim2_agirlik,
sto_birim3_agirlik, sto_birim4_agirlik, sto_kanban_kasa_miktari,
sto_RafOmru,sto_siparis_dursun) VALUES
(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
[stok.sto_kod, stok.sto_isim, stok.sto_kisa_ismi, stok.sto_yabanci_isim, stok.sto_sat_cari_kod,
stok.sto_cins, stok.sto_doviz_cinsi, stok.sto_detay_takip, stok.sto_birim1_ad,
stok.sto_birim1_katsayi, stok.sto_birim2_ad, stok.sto_birim2_katsayi,
stok.sto_birim3_ad, stok.sto_birim3_katsayi, stok.sto_birim4_ad,
stok.sto_birim4_katsayi, stok.sto_toptan_vergi, stok.sto_satis_dursun,
stok.sto_siparis_dursun, stok.sto_kategori_kodu, stok.sto_altgrup_kod,
stok.sto_anagrup_kod, stok.sto_sektor_kodu, stok.sto_reyon_kodu,
stok.sto_muhgrup_kodu, stok.sto_ambalaj_kodu, stok.sto_marka_kodu, stok.sto_beden_kodu,
stok.sto_renk_kodu, stok.sto_model_kodu, stok.sto_bedenli_takip,
stok.sto_renkDetayli, stok.sto_special3,
stok.sto_detay_takibinde_depo_kontrolu_fl, stok.sto_malkabul_dursun,
stok.sto_tasfiyede, stok.sto_pasif_fl, stok.sto_min_stok, stok.sto_birim1_agirlik,
stok.sto_birim2_agirlik, stok.sto_birim3_agirlik, stok.sto_birim4_agirlik,
stok.sto_kanban_kasa_miktari, stok.sto_RafOmru, stok.sto_siparis_dursun],
app.onSuccess, app.onError);

               
}

               
alert("for Bitti");

            
   //alert(data.AnaGruplar.length);

               
for (var a = 0; a < data.AnaGruplar.length; a++) {

                   
var anagrup = data.AnaGruplar[a];

                   
tx.executeSql("INSERT INTO STOK_ANA_GRUPLARI(san_kod, san_isim) VALUES (?,?)",
[anagrup.san_kod, anagrup.san_isim], app.onSuccess, app.onError);

               
}

 

               
for (var al = 0; al < data.AltGruplar.length; al++) {

                   
var altgrup = data.AltGruplar[al];

                   
tx.executeSql("INSERT INTO STOK_ALT_GRUPLARI(sta_kod, sta_isim) VALUES
(?,?)", [altgrup.sta_kod, altgrup.sta_isim], app.onSuccess, app.onError);

               
}

 

               
for (var m = 0; m < data.Markalar.length; m++) {

                   
var marka = data.Markalar[m];

  
                 tx.executeSql("INSERT
INTO STOK_MARKALARI(mrk_kod, mrk_ismi) VALUES (?,?)", [marka.mrk_kod,
marka.mrk_ismi], app.onSuccess, app.onError);

               
}

 

               
for (var md = 0; md < data.Modeller.length; md++) {

             
      var model = data.Modeller[md];

                   
tx.executeSql("INSERT INTO STOK_MODEL_TANIMLARI(mdl_kodu, mdl_ismi) VALUES
(?,?)", [model.mdl_kodu, model.mdl_ismi], app.onSuccess, app.onError);

               
}

 

               
for (var f = 0; f < data.Fiyatlar.length; f++) {

                   
var fiyat = data.Fiyatlar[f];

                   
tx.executeSql("INSERT INTO STOK_SATIS_FIYAT_LISTELERI(sfiyat_stokkod,
sfiyat_listesirano,sfiyat_deposirano,sfiyat_fiyati,sfiyat_iskontokod,sfiyat_doviz)
VALUES (?,?,?,?,?,?)", [fiyat.sfiyat_stokkod, fiyat.sfiyat_listesirano,
fiyat.sfiyat_deposirano, fiyat.sfiyat_fiyati, fiyat.sfiyat_iskontokod,
fiyat.sfiyat_doviz], app.onSuccess, app.onError);

               
}

 

 

               
for (var ft = 0; ft < data.FiyatTanimlari.length; ft++) {

                   
var fiyatt = data.FiyatTanimlari[ft];

                   
tx.executeSql("INSERT INTO STOK_SATIS_FIYAT_LISTE_TANIMLARI(sfl_sirano,
sfl_kdvdahil) VALUES (?,?)", [fiyatt.sfl_sirano, fiyatt.sfl_kdvdahil],
app.onSuccess, app.onError);

               
}

 

               
for (var d = 0; d < data.Dovizler.length; d++) {

                   
var dov = data.Dovizler[d];

                   
tx.executeSql("INSERT INTO KUR_ISIMLERI(Kur_No, Kur_sembol,Kur_adi) VALUES
(?,?,?)", [dov.DvzNo, dov.Smb, dov.Dvz], app.onSuccess, app.onError);

               
}

 

               
for (var k = 0; k < data.Kdvler.length; k++) {

                   
var kdv = data.Kdvler[k];

                  
 tx.executeSql("INSERT INTO KDV_TANIMLARI(KDVPntr,
KDVOran,KDVAciklama) VALUES (?,?,?)", [kdv.KDVPntr, kdv.KDVOran,
kdv.KDVAciklama], app.onSuccess, app.onError);

               
}

           
}

           
catch (e) {

               
alert('An error has occurred: ' + e.message);

           
}
  
        //alert("Stoklar Bitti");

       
}, errorCB, successCB

    );

};

 

Right now if my data is 5000
items for a table, then records are added without any problem.

However; for instance, if record
number of my stocks is 11000, then sqlite doesn't add any records.

When I am making this by
simulator, the application screen is just staying, therefore it doesn't save.

But, if I connect my iphone and
it is worked, then application resets and openning again.

 

Would you mind to help me about
my issue. I wanna keep my records by offline, however, records numbers is too
much, Therefore I can't do process.

 

I found error message that
Received memory warning.

 

Your Respectfuly,

1 Answer, 1 is accepted

Sort by
0
Kaloyan
Telerik team
answered on 01 Apr 2014, 09:08 AM
Hello Senol,

Thank you for contacting us.

Can you check the actual memory consumed by your application at the time before it resets (approximately)?

Also, please see if your database does not cross any of the listed here SQLite limits.

I am looking forward to hearing from you.

Regards,
Kaloyan
Telerik
 

Build cross-platform mobile apps using Visual Studio and .NET. Register for the online webinar on 03/27/2014, 11:00AM US ET. Seats are limited.

 
Tags
AppBuilder extension for Visual Studio
Asked by
Senol
Top achievements
Rank 1
Answers by
Kaloyan
Telerik team
Share this question
or