2015-04-22 3 views
-1

У меня есть следующий код:JS не вводя функцию транзакции

var db = openDatabase('CBDB', '1.0', 'mySpecialDatabaseThatWontWork',10*1024*1024); 
    db.transaction(function (nw){ 
     nw.executeSql('Drop TABLE user');   
    }); 

    function db1(){ 
     var db = openDatabase('CBDB', '1.0', 'mySpecialDatabaseThatWontWork',10*1024*1024); 
     db.transaction(function (tx){ 
      createDB(); 
      queryDB(); 
     }); 
     function createDB(){ 
      db.transaction(function (tx){ 
      tx.executeSql('CREATE TABLE IF NOT EXISTS login(empid unique, name varchar(20), pass varchar(20), manager varchar(20))'); 
      tx.executeSql('INSERT INTO login (empid,name,pass,manager) VALUES ("1234567","Krishnaji","12345","9999999")'); 
      tx.executeSql('INSERT INTO login (empid,name,pass,manager) VALUES ("1000001","Gourav","12345","1234567")'); 
      tx.executeSql('INSERT INTO login (empid,name,pass,manager) VALUES ("1000002","Manju","12345","1234567")'); 
      tx.executeSql('CREATE TABLE IF NOT EXISTS user(empid varchar(10))'); 
      }); 
     } 
     function queryDB(){ 
      db.transaction(function (tx){ 
      var x = $('#nameT').val(); 
      tx.executeSql('INSERT INTO user (empid) VALUES (?)', [x]); 
      var u = $("#nameT").val(); 
      var p = $("#nameP").val(); 
      tx.executeSql('SELECT * FROM login WHERE empid="?" and pass="?"',[u,p], function valid(tx,results){ 
       var len = results.rows.length; 
       console.log(len); 
       if (len == 1) { 
        window.location.assign("www/landing.html"); 
       } else{ 
        //alert("Invalid Employee ID or Password"); 
       }; 
      }); 
     }); 
     } 
     } 

Теперь проблема заключается в том, что Javascript не входит в функции транзакции.

Я попытался решить аналогичный вопрос об удалении предупреждений, но это не сработало для меня.

+1

Вы знаете, что web-sql устарел и не должен использоваться для нового кода - не так ли? –

+1

Да, я знаю об этом. Я создаю приложение phonegap, а phonegap поддерживает только websql через Android, iOS и Windows-телефон. Если есть альтернатива, пожалуйста, предоставьте это. – GouravR

ответ

0

Проблема заключается в том, что transaction() выполнит только один оператор executesql.

Смежные вопросы