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" });