SQLite数据库在Javascript本地 [英] SQLite database in Javascript locally

查看:275
本文介绍了SQLite数据库在Javascript本地的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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



有人知道如何打开我的文件与所有

解决方案

此脚本将帮助您您:

 < script type =text / javascript> 
function createDatabase(){
try {
if(window.openDatabase){
var shortName ='db_xyz';
var version ='1.0'
var displayName ='显示信息';
var maxSize = 65536; //以字节为单位
db = openDatabase(shortName,version,displayName,maxSize);
}
} catch(e){
alert(e);
}
}
function executeQuery($ query,callback){
try {
if(window.openDatabase){
db.transaction $ b 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 =buttonname ='create'onClick =createDatabase()value ='Create Database'>
< input type =buttonname ='create'onClick =createTable()value ='create table'>
< input type =buttonname ='insert'onClick =insertValue()value ='Insert value'>
< input type =buttonname ='select'onClick =showTable()value ='show table'>
< input type =fileid =image>
< div result>< / div>
< / script>

要下载代码,请访问url:



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


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!

解决方案

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/

这篇关于SQLite数据库在Javascript本地的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆