javascript - 本地 Javascript 中的 SQLite 数据库

标签 javascript sqlite connection cordova local

我在 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);

问题是数据库是空的,因为当我运行它时它给出错误“没有这样的表”。 我认为它创建了一个名为“myDatabase”的新数据库,这就是它没有表的原因。

有谁知道如何打开包含所有表格的文件?

谢谢!

最佳答案

此脚本将帮助您:

<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>

要下载代码,请访问 url:

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

关于javascript - 本地 Javascript 中的 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5244471/

相关文章:

javascript - D3 - 饼图

Android:如何取消/中断/中断挂起的 SQLite 查询?

android - 无法得到 smack 的响应

javascript - ES6 对象赋值简化

javascript - Vue 组件没有出现在 laravel 中

javascript - 定位父 div 的最佳方式 - javascript

configuration - 设置 tomcat + ssl 失败。无法连接到 SSL channel ?

iphone - 结果未返回 FMDB 中的任何数据

sqlite - codenameone 在 sqlite 中将 boolean 值存储为 true/false,而它们应该是 1/0

express - 在 Ubuntu 18.04 服务器上安装 Oracle Express Edition 18c - 连接问题