Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Database will not delete

Posted on 2014-02-12
3
Medium Priority
?
175 Views
Last Modified: 2014-06-01
I am using appecelerator  javascript for an android app ... the code wont delete the database .... we count the the lines in the database and send the data to our server ... once the number is zero it erases the database... 1) the database is not being erased so we are sending a lot of duplicate data and an enormous amount the next time user runs our program... as a side note can someone send me a tutorial of how to view the android database ... a really basic one for people new to android. using adb i was able to locate the database file, but not view it or copy the file out of adb to my desktop

var numRequests = '';
var Groundy = function(){
 
var db = Ti.Database.open('FrogMan.db');
var getGroundData = db.execute('SELECT user, MatchUID,Ossys, UserID, SetPrKey, Game, Point, Stroke, XCor, YCor FROM GroundStrokeData');
numRequests = 0;
while (getGroundData.isValidRow())
{
    numRequests++;
     var user = getGroundData.fieldByName('UserID');
     var UserID = getGroundData.fieldByName('UserID');
     var MatchUID = getGroundData.fieldByName('MatchUID'); 
     var Ossys = getGroundData.fieldByName('Ossys');
     var SetPrKey = getGroundData.fieldByName('SetPrKey'); 
     var Game = getGroundData.fieldByName('Game');
     var Point = getGroundData.fieldByName('Point');  
     var Stroke = getGroundData.fieldByName('Stroke'); 
     var XCor = getGroundData.fieldByName('XCor');
     var YCor = getGroundData.fieldByName('YCor');
 
  GroundDtrokeTransmit(user, MatchUID, Ossys, UserID, SetPrKey, Game,  Point, Stroke, XCor, YCor);
  getGroundData.next();
}
 
getGroundData.close();
db.close();
};
 
var GroundDtrokeTransmit = function(user, MatchUID, Ossys,  UserID, SetPrKey, Game, Point, Stroke, XCor, YCor){ 
 
 
var xhr=Titanium.Network.createHTTPClient();    
 xhr.onerror = function(e){ 
 Ti.API.error('groundy Bad Sever =>'+e.error);
};
 
xhr.open("POST", "http://mytenniscoach.net/services/default.php?method=transGround");//ADD your URL
xhr.setRequestHeader("content-type", "application/json");
    params={    "user":user,
                "UserID": UserID,
                "MatchUID":MatchUID,
                "Ossys":Ossys,
                "SetPrKey":SetPrKey,
                "Game" : Game,
                "Point":Point,
                "StrokeUID": Stroke,
                "XCor" : XCor,
                "YCor" : YCor
 
          };
 
Ti.API.info('this is ground stroke data'+JSON.stringify(params));
xhr.send(JSON.stringify(params));
 
 
xhr.onload = function(f){
    numRequests--;
    Ti.API.info(f.error);
    var jObject = JSON.parse(this.responseText);
    if(jObject.Result == 1){
        jsonError=false;
 }else{
    jsonError = true;
    //do nothing 
 
 }    
 
if (numRequests == 0) {
            Ti.API.info('All Requests complete; jsonError is ' + jsonError);
            // all processes complete
            if (jsonError == false) {
                Ti.API.info('Attempting to delete database ' +db);
                db = Ti.Database.open('FrogMan.db');
                db.execute('DELETE FROM GroundStrokeData');
                db.close();
                proof();
                Serve_Data_Tbl();
 
            } else {
 
            }
 
        } 
 }      
 };
 var proof = function(){
    db = Ti.Database.open('FrogMan.db');
    getGroundData = db.execute('SELECT user, MatchUID,Ossys, UserID, SetPrKey, Game, Point, Stroke, XCor, YCor FROM GroundStrokeData');
    numRequests = 0;
    while (getGroundData.isValidRow())
    Ti.API.info('this is database after delete ' +getGroundData);
 
 };

Open in new window

0
Comment
Question by:dolamitejenkins
3 Comments
 
LVL 8

Accepted Solution

by:
Surrano earned 2000 total points
ID: 39858507
First off, unless your android device is rooted, adb won't have root access.
Lacking root access you won't be able to read *any* app specific files since each and every app has a different userid assigned and only that user (plus root) can access the file.

If the application is written (or at least can be modified) by you then I recommend adding an export function that exports the entire db content to sdcard.

If you manage to access the sqlite db files, I recommend using the following tool:
http://sqlitebrowser.sourceforge.net/
0

Featured Post

NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What do responsible coders do? They don't take detrimental shortcuts. They do take reasonable security precautions, create important automation, implement sufficient logging, fix things they break, and care about users.
In this article, we’ll look at how to deploy ProxySQL.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
Starting up a Project

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question