Solved

Database will not delete

Posted on 2014-02-12
3
169 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

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

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

Password hashing is better than message digests or encryption, and you should be using it instead of message digests or encryption.  Find out why and how in this article, which supplements the original article on PHP Client Registration, Login, Logo…
In this series, we will discuss common questions received as a database Solutions Engineer at Percona. In this role, we speak with a wide array of MySQL and MongoDB users responsible for both extremely large and complex environments to smaller singl…
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

752 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