本地Javascript中的SQLite数据库

Tje*_*les 12 javascript sqlite connection local cordova

我在XCode上使用PhoneGap项目.我正在尝试使用Javascript连接到SQLite数据库.

我在SQLite工具中创建了一个文件"myDatabase.sqlite".现在我的问题是如何在我的代码中打开该数据库?现在我正在使用以下代码:

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);
Run Code Online (Sandbox Code Playgroud)

问题是数据库是空的,因为当我运行它时它会给出错误'No such table'.我认为它创建了一个名为"myDatabase"的新数据库,这就是为什么它没有表格.

有谁知道如何打开我的文件与其中的所有表格?

谢谢!

Suj*_*eet 11

此脚本将帮助您:

<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>
Run Code Online (Sandbox Code Playgroud)

要下载代码,请访问url:

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

  • 这段代码会删除你已经在sqlite文件中创建的数据的表吗?所以你仍然需要在代码中再次插入数据?我需要的所有数据都已存在于SQLite文件中. (2认同)