Search code examples
javascriptsqliteconnectioncordovalocal

SQLite database in Javascript locally


I'm using a PhoneGap project on XCode. I am trying to connect to a SQLite databse by using Javascript.

I have made a file "myDatabase.sqlite" in an SQLite tool. Now my question is how do I open that database in my code? Right now I'm using the following code:

var db; 
var shortName = 'myDatabase'; 
var version = '1.0'; 
var displayName = 'myDatabase'; 
var maxSize = 65535; 


db = openDatabase(shortName, version, displayName,maxSize); 

db.transaction(function(transaction) {
    transaction.executeSql('SELECT * FROM User;', [],
    function(transaction, result) {

        if (result != null && result.rows != null) {
            for (var i = 0; i < result.rows.length; i++) {
                var row = result.rows.item(i);
                alert(row.ID);
            }
        }
    }, errorHandler);
}, errorHandler, nullHandler);

The problem is that the database is empty because when i run it it gives the error 'No such table'. I think it created a new database named "myDatabase" and thats why it has no tables.

Does anyone know how I can open my file with all the tables in it?

Thanks!


Solution

  • This script will help you:

    <script type="text/javascript">
          function createDatabase(){
             try{
                  if(window.openDatabase){
                  var shortName = 'db_xyz';
                  var version = '1.0';
                  var displayName = 'Display Information';
                  var maxSize = 65536; // in bytes
                  db = openDatabase(shortName, version, displayName, maxSize);
            }
         }catch(e){
                     alert(e);
               }
         }
         function executeQuery($query,callback){
         try{
             if(window.openDatabase){
             db.transaction(
             function(tx){
             tx.executeSql($query,[],function(tx,result){
             if(typeof(callback) == "function"){
                     callback(result);
             }else{
                     if(callback != undefined){
                           eval(callback+"(result)");
                      }
             }
             },function(tx,error){});
              });
               return rslt;
             }
             }catch(e){}
             }
               function createTable(){
               var sql = 'drop table image';
                     executeQuery(sql);
                     var sqlC = 'CREATE TABLE image (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, image BLOB )';
                     executeQuery(sqlC);
               }
               function insertValue(){
                    var img = document.getElementById('image');
                    var sql = 'insert into image (name,image) VALUES ("sujeet","'+img+'")';
                    executeQuery(sql,function(results){alert(results)});
                }
    <input type="button" name='create' onClick="createDatabase()" value='Create Database'>
    <input type="button" name='create' onClick="createTable()" value='create table'>
    <input type="button" name='insert' onClick="insertValue()" value='Insert value'>
    <input type="button" name='select' onClick="showTable()" value='show table'>
    <input type="file" id="image" >
    <div result></div>
    </script>
    

    To download the code go visit url:

    http://blog.developeronhire.com/create-sqlite-table-insert-into-sqlite-table/