Thanks. What do you have in databaseworker.js? meerkat
> -----Original Message----- > From: [email protected] [mailto:[email protected]] > On Behalf Of Oblygre > Sent: Tuesday, February 10, 2009 6:22 AM > To: Gears Users > Subject: [gears-users] Re: MYSQL JSON SQLITE > > > Use httpreqeust to read from your php on the server into a variable > (serverresponse) on the gears computer. > Then you can use a worker to read data into the sql database. > > I use something like this: > Note: Settext is just for returning some info back to the user > function floadfromdatabase(){ > if (script_active==1) > {settext("Error: Script is already running...","program_status"); > return false;} > if (checkonlinestatus()==false) > {settext("Error: Not online. Network error?","program_status"); > return false;} > settext("Reading data from main DB...","program_status"); > script_active=1; > var link="/getdata.php?q=" + Math.floor(Math.random() * 100000); ; > > data=""; > var request = google.gears.factory.create('beta.httprequest'); > request.open('GET', link); > request.onreadystatechange = function() { > if (request.readyState == 4) { > try { > data=request.responseText; > } > catch (ex) { > settext("Status: Error reading data from main > DB","program_status"); > active_script=0; > return; > } > > if (data.length==0) > settext('<font color="RED">No data found. Network error?</ > font>',"program_status") > else { > settext("Status: "+data.length+" byte(s) read from main DB, > adding data to local DB","program_status"); > insertdata(data); > } > } > }; > request.send(); > > } > function insertdata(data){ > var childWorkerId = > workerPool.createWorkerFromUrl('databaseworker.js'); > workerPool.sendMessage(data, childWorkerId); > > return; > } > > > // databaseworker.js > var wp = google.gears.workerPool; > > wp.onerror = function(errorObject) { > alert("Error in workerPool: "+errorObject.message+" on > line"+errorObject.lineNumber); > }; > > wp.onmessage = function(a, b, message) { > if (1) { > try { > eval("dataarr="+serverresponse); > > } > catch (ex) { > alert("Error: No valid data found.."); > return; > } > > var dbcount=0; > var reply="no reply"; > var db ; > db= google.gears.factory.create('beta.database'); > if (db) { > db.open('yourdatabase'); > db.execute('begin'); > db.execute('drop table if exists yourtable'); > db.execute('create table if not exists yourtable' + > ' (yourfield1, yourfield2, yourfield3, primary key > (yourfield1))'); > for (x in dataarr) > { > db.execute('insert into yourtable values(?,?,?)', > [dataarr[x].yourfield1,dataarr[x].yourfield2,dataarr > [x].yourfield3]; > dbcount++; > //if (dbcount%100==0) > //wp.sendMessage(dbcount+" record(s) added....", > message.sender); > } > } > db.execute('commit'); > db.close(); > reply=dbcount+" record(s) added from main DB, finished"; } > wp.sendMessage(reply, message.sender); > } > > > On Feb 9, 10:14 pm, meerkat <[email protected]> wrote: > > Ok. Got round the php4 issue. > > > > Any clues on how to do "data from server is saved in serverresponse"? > > > > Thanks > > > > On Feb 9, 2:34 pm, meerkat <[email protected]> wrote: > > > > > The web server I am working with is still on php4. This means > > > json_encode($dataarray); is not supported. What strategy would I use > > > instead? > > > Thanks, > > > meerkat > > > > > On Feb 9, 1:03 pm, "Tosca Lahiri" <[email protected]> wrote: > > > > > > Thanks for this advice. > > > > In the php code is the $dataarray made up of: > > > > [fieldname, value]? > > > > > > I have found the xml tutorial you suggested...it is very good. That > is what > > > > made me go down the xml route. I can see now however why the json > option is > > > > preferable. > > > > TML > > > > > > -----Original Message----- > > > > > From: [email protected] [mailto:gears- > [email protected]] > > > > > On Behalf Of Oblygre > > > > > Sent: Monday, February 09, 2009 6:41 AM > > > > > To: Gears Users > > > > > Subject: [gears-users] Re: MYSQL XML SQLITE > > > > > > > I think its easier to use json istead of xml, this saves a lot of > time > > > > > in javascript, and PHP have built in functions to convert to json. > > > > > > > Example: > > > > > > > In your php script: > > > > > echo json_encode($dataarray); // $dataarray contains all your db > data > > > > > > > In your gearscode: > > > > > //data from server is saved in serverresponse > > > > > // > > > > > try { > > > > > eval("dataarr="+serverresponse); > > > > > > > } > > > > > catch (ex) { > > > > > alert("Error: No valid data found.."); > > > > > return; > > > > > } > > > > > > > var dbcount=0; > > > > > var reply="no reply"; > > > > > var db ; > > > > > db= google.gears.factory.create('beta.database'); > > > > > if (db) { > > > > > db.open('yourdatabase'); > > > > > db.execute('begin'); > > > > > db.execute('drop table if exists yourtable'); > > > > > db.execute('create table if not exists yourtable' + > > > > > ' (yourfield1, yourfield2, yourfield3, primary key > > > > > (yourfield1))'); > > > > > for (x in dataarr) > > > > > { > > > > > db.execute('insert into yourtable values(?,?,?)', > > > > > [dataarr[x].yourfield1,dataarr[x].yourfield2,dataarr > > > > > [x].yourfield3]; > > > > > dbcount++; > > > > > //if (dbcount%100==0) > > > > > //wp.sendMessage(dbcount+" record(s) added....", > > > > > message.sender); > > > > > } > > > > > } > > > > > db.execute('commit'); > > > > > db.close(); > > > > > reply=dbcount+" record(s) added from main DB, finished"; > > > > > > > A link to a tutorial using XML: > > > > >http://www.onlamp.com/pub/a/onlamp/2007/06/28/the-power-of-google- > gears- > > > > > part-1.html > > > > > > > On Feb 8, 2:37 am, TML <[email protected]> wrote: > > > > > > Just to clarify...I mean programmatically, not a one off with a > tool. > > > > > > When the user goes online on their pda the data is imported into > the > > > > > > locally held sqlite db. > > > > > > > > On Feb 8, 1:34 am, TML <[email protected]> wrote: > > > > > > > > > Hello, > > > > > > > > > I have a MySQL DB on web server. I have php page that extracts > the > > > > > > > data from table and creates an XML file. > > > > > > > > > Now, I need to know how to import that data in the XML file > into the > > > > > > > Gears sqlite DB on PDA? > > > > > > > > > Any suggestions? > > > > > > > > > Thanks, > > > > > > > TML
