Quantcast
Channel: Appcelerator Developer Center Q&A Tag Feed (android)
Viewing all articles
Browse latest Browse all 7655

remote json data save into local database for offline use.

$
0
0

Application:mobile,os:windows,titanium sdk:3.2.1,titanium studio:3.2.1,device:emulator. How to save remote json data to local database. I have tried this way but getting isValidrow() error.even strange the app works fine till I restart the studio after restarting it throws isValidrow error.

index.js

function member()
{
 var members = Alloy.createController('members').getView();
 members.open();
}
function fetchData(e){
    var xhr = Titanium.Network.createHTTPClient();
    xhr.open("GET","url");
    xhr.send();
    xhr.onload = function(){
        if (xhr.status == 200) {
            //var tx1 = Titanium.Database.install("/dbs/clubapp.sqlite", "clubapp");
            var tx = Titanium.Database.open("clubapp");
            var json = JSON.parse(this.responseText);
            //creating members table
        if (json.membersTable == null) {
        //DO NOTHING
        } else {
            tx.execute('drop table if exists members');
            tx.execute('CREATE TABLE if not exists members (id INTEGER, name text);');
            for (i = 0; i < json.membersTable.length; i++) {
                tx.execute(
                    'insert into members (id, name) values (?,?);',
                    [ json.membersTable[i].id,
                    json.membersTable[i].name]);
 
            }
        }
 
        }
}
model/members.js
exports.definition = {
    config: {
            "columns":
            {
                "name": "string",
            },
            adapter: {
            type: "sql",
            collection_name: "members",
            db_file: "/dbs/clubapp.sqlite",
            db_name: "clubapp",
            idAttribute: "id",
            remoteBackup: false
        }
 
    },
    extendModel: function(Model) {
        _.extend(Model.prototype, {
            // extended functions and properties go here
        });
 
        return Model;
    },
    extendCollection: function(Collection) {
        _.extend(Collection.prototype, {
            details: function(args)
            {
                Collection.prototype.fetch(
                    {
 
                    }
                );
            }
 
        });
 
        return Collection;
    }
};
members.xml
<Alloy>
    <Window id="members_window" fullscreen="true" backgroundColor="white" title="Members">      
        <TableView id="table"  dataCollection="members">
            <Require src="row" />
        </TableView>
    </Window>
</Alloy>
members.js
var members= Alloy.Collections.members;
members.fetch(
    {query:
        "SELECT members.name,members.id FROM members"
        });

Viewing all articles
Browse latest Browse all 7655

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>