Solved

Database will not delete

Posted on 2014-02-12
3
172 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 8

Accepted Solution

by:
Surrano earned 500 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 Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

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

Containers like Docker and Rocket are getting more popular every day. In my conversations with customers, they consistently ask what containers are and how they can use them in their environment. If you’re as curious as most people, read on. . .
The SignAloud Glove is capable of translating American Sign Language signs into text and audio.
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
Starting up a Project

630 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