Adding record in sqlite Problem

2 posts, 0 answers
  1. Senol
    Senol avatar
    11 posts
    Member since:
    Feb 2013

    Posted 27 Mar 2014 Link to this post

    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,
  2. Kaloyan
    Admin
    Kaloyan avatar
    872 posts

    Posted 01 Apr 2014 Link to this post

    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.

     
Back to Top