不能连续执行sql,一定要点击按钮分步才能执行。我的uexDataBaseMgr控件是最新版,但用的是旧版本的脚本
uexDataBaseMgr.cbOpenDataBase;
uexDataBaseMgr.openDataBase(dbname,"");
var sql = 'select * from testTable;';
uexDataBaseMgr.cbSelectSql = function(opId,type,data){
if(type==1 ){
alert('exeSql:'+opId+','+type+','+data);
console.log('exeSql:'+opId+','+type+','+data);
}else{
console.log('查询失败!');
}
}
uexDataBaseMgr.selectSql(dbName,++opID,sql);
uexDataBaseMgr.closeDataBase(dbName,++opID);
如果代码这样查询根本查询不了,不能进入到uexDataBaseMgr.cbSelectSql 这一步,以前的插件和引擎是可以的。新版本引擎和插件必须,先点击按钮createDB(),然后点击按钮selectData()
/**
* 打开、创建数据库
*/
function createDB(){
dbName = $$('name').value;
if(dbName==''){
console.log('数据库名字为空');
return;
}
uexDataBaseMgr.cbOpenDataBase;
uexDataBaseMgr.openDataBase(dbName,++opID);
}
/**
* 数据库的查询
* 使用查询语句进行查询select * from testTable
*/
function selectData(){
uexDataBaseMgr.cbSelectSql = function(opId,type,data){
if(type==1 ){
alert('exeSql:'+opId+','+type+','+data);
console.log('exeSql:'+opId+','+type+','+data);
}else{
console.log('查询失败!');
}
}
createDB();
var sql = 'select * from testTable;';
uexDataBaseMgr.selectSql(dbName,++opID,sql);
closeDataBase();
}
/**
* 关闭数据库
*/
function closeDataBase(){
uexDataBaseMgr.closeDataBase(dbName,++opID);
}
完整代码:
AppCan API uexDataBaseMgrvar dbName = '';
var opID = 0;
window.uexOnload = function(type){
if(!type){
dbName = $$('name').value;
}
}
function $$(id){
return document.getElementById(id);
}
/**
* 打开、创建数据库
*/
function createDB(){
dbName = $$('name').value;
if(dbName==''){
console.log('数据库名字为空');
return;
}
uexDataBaseMgr.cbOpenDataBase = function(opId, dataType, data){
if(dataType == 2&&data == 0){
alert('数据库打开/创建成功');
console.log('数据库打开/创建成功!');
}else{
console.log('数据库打开/创建失败!');
}
}
uexDataBaseMgr.openDataBase(dbName,++opID);
}
/**
* 表的创建
* 使用执行语句方法进行创建CREATE TABLE testTable(_id INTEGER PRIMARY KEY,name TEXT);
*/
function createTable(){
uexDataBaseMgr.cbExecuteSql = function(opId, type, data){
if(type == 2 &&data == 0){
alert('表创建成功');
console.log('表创建成功!');
}else{
console.log('表创建失败!');
}
}
var sql = 'CREATE TABLE testTable(_id INTEGER PRIMARY KEY,name TEXT);';
uexDataBaseMgr.executeSql(dbName,++opID,sql);
}
/**
* 插入一条数据
* 使用执行语句插入一条数据INSERT INTO testTable (name) VALUES ('这是测试')
*/
function insertData(){
uexDataBaseMgr.cbExecuteSql = function(opId, type, data){
if(type == 2 &&data == 0){
alert('数据插入成功');
console.log('数据插入成功!');
}else{
console.log('数据插入失败!');
}
}
var sql = "INSERT INTO testTable (name) VALUES ('这是测试');";
uexDataBaseMgr.executeSql(dbName,++opID,sql);
}
/**
* 数据库的查询
* 使用查询语句进行查询select * from testTable
*/
function selectData(){
uexDataBaseMgr.cbSelectSql = function(opId,type,data){
if(type==1 ){
alert('exeSql:'+opId+','+type+','+data);
console.log('exeSql:'+opId+','+type+','+data);
}else{
console.log('查询失败!');
}
}
var sql = 'select * from testTable;';
uexDataBaseMgr.selectSql(dbName,++opID,sql);
}
/**
* 事务的执行
* 同一个事务的多条uexDataBaseMgr.executeSql执行语句可不用定义executeSql的回调方法
*/
function transaction(){
uexDataBaseMgr.cbTransaction=function(opId,dataType,data){
if(dataType==2){
if(data==0){
alert('事务执行成功');
console.log('事务执行成功');
}
if(data==1)
{
alert('事务执行失败');
console.log('事务执行失败');
}
}
}
var opid = ++opID;
uexDataBaseMgr.transaction(dbName,opi,function(){
uexDataBaseMgr.cbExecuteSql = null;
var sql1 = 'DELETE FROM testTable WHERE _id = 1;';
var sql2 = 'UPDATE testTable SET name = appcan WHERE _id = 2;';
uexDataBaseMgr.executeSql(dbName,opid,sql1);
uexDataBaseMgr.executeSql(dbName,opid,sql2);
});
}
/**
* 关闭数据库
*/
function closeDataBase(){
uexDataBaseMgr.cbCloseDataBase = function closeDataBaseCallBack(opid,type,data){
if(type == 2&&data == 0){
console.log('数据库关闭成功!');
}else{
console.log('数据库关闭失败!');
}
}
uexDataBaseMgr.closeDataBase(dbName,++opID);
}
数据库功能
1.打开/创建数据库:
2.创建表:
3.插入数据:
4.查询数据:
5.事务:
6.关闭数据库: