2

I'm trying to loop through all of the tables in my Sqlite DB and send them to the server DB. Everything is working except when I get to the part where I send the information via a $.get() the tbl_name variable is already set to the last value... IE all of the $.get() calls use the same value for tbl_name, the last table name.

        var submissionID=10;
        var varStr;

        DEMODB.transaction(function (transaction) {
            transaction.executeSql("SELECT name FROM sqlite_master WHERE type='table';", [], function(transaction, results) {
                for (var i = 0; i < results.rows.length; i++) {
                    var tables = results.rows.item(i);
                    var tbl_name=tables['name'];

                    if (tbl_name=="__WebKitDatabaseInfoTable__" || tbl_name=="Submission") { continue; }

                    transaction.executeSql("SELECT * FROM " + tbl_name + " WHERE submissionID=?;", [ID], function(transaction, results) {
                        varStr="";
                        for (var i = 0; i < results.rows.length; i++) {
                            var row = results.rows.item(i);

                            for (col in row) {
                                if (col=="submissionID" || col=="ID") { continue; }
                                varStr += col + "=" + row[col] + '&';
                            }
                        }
                        varStr += 'submissionID=' + submissionID + "&table=" + tbl_name + "&num=" + i;
                        $.get("script/to/process.aspx",varStr);
                    }, errorHandler);
                }
            }, errorHandler);
        });

1 Answer 1

1
DEMODB.transaction(function (transaction) {
  transaction.executeSql("SELECT name FROM sqlite_master WHERE type='table';", [], function(transaction, results) {
    for (var i = 0; i < results.rows.length; i++) {
      var tables = results.rows.item(i);
      handleTable(tables['name'], transaction);
    }
  }, errorHandler);
});


function handleTable(tbl_name, transaction) {

  if (tbl_name=="__WebKitDatabaseInfoTable__" || tbl_name=="Submission") { return; }

  transaction.executeSql("SELECT * FROM " + tbl_name + " WHERE submissionID=?;", [ID], function(transaction, results) {
    varStr="";
    for (var i = 0; i < results.rows.length; i++) {
      var row = results.rows.item(i);

      for (col in row) {
        if (col=="submissionID" || col=="ID") { continue; }
        varStr += col + "=" + row[col] + '&';
      }
    }
    varStr += 'submissionID=' + submissionID + "&table=" + tbl_name + "&num=" + i;
    $.get("script/to/process.aspx",varStr);
  }, errorHandler);
}
Sign up to request clarification or add additional context in comments.

1 Comment

Thank you so much... I've been pulling my hair out on this for a couple hours.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.