Proxy 无法使用Sencha Touch 2 SQL代理在Web SQL中创建表
这是一个非常奇怪的问题。我修改了SenchaTouch2的sql代理。实际上,我只是更改了一些配置和名称,除了一些console.log之外,其他非代码都被修改了。当我在chrome中调试它时,createTable的代码被执行,数据库被创建,但是带有createTable的executeSql不起作用。我已经添加了成功和失败回调,但它们没有被执行 我的意思是这很奇怪,因为原始javascript代码工作得很好。稍后我将粘贴代码,但我几乎无法想象它为什么会发生 对不起,我的英语很差 原始代码可以工作:Proxy 无法使用Sencha Touch 2 SQL代理在Web SQL中创建表,proxy,sencha-touch,Proxy,Sencha Touch,这是一个非常奇怪的问题。我修改了SenchaTouch2的sql代理。实际上,我只是更改了一些配置和名称,除了一些console.log之外,其他非代码都被修改了。当我在chrome中调试它时,createTable的代码被执行,数据库被创建,但是带有createTable的executeSql不起作用。我已经添加了成功和失败回调,但它们没有被执行 我的意思是这很奇怪,因为原始javascript代码工作得很好。稍后我将粘贴代码,但我几乎无法想象它为什么会发生 对不起,我的英语很差 原始代码可以
var db = openDatabase("TDD", "1.0", "TDD Database", 5 * 1024 * 1024);
db.transaction(function(tx){
tx.executeSql("CREATE TABLE IF NOT EXISTS Activities " +
"(id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, " +
"title TEXT, location TEXT)");
});
Sencha Touch SQL Proxy(仅需要代码):
您发布的代码显示: 形态ig:{ 应该是: 配置:{ 不确定这是否是你的问题,但我会先看看那里
/**
* PhoneGap proxy.
*/
Ext.define('TDD.proxy.PhoneGap', {
alias: 'proxy.phonegap',
extend: 'Ext.data.proxy.Client',
conf ig: {
/**
* @cfg {Object} reader
* @hide
*/
reader: null,
/**
* @cfg {Object} writer
* @hide
*/
writer: null,
table: null,
database: 'TDD',
columns: '',
uniqueIdStrategy: false,
tableExists: false,
defaultDateFormat: 'Y-m-d H:i:s.u'
},
create: function (operation, callback, scope) {
var me = this,
db = me.getDatabaseObject(),
records = operation.getRecords(),
tableExists = me.getTableExists();
operation.setStarted();
db.transaction(function(transaction) {
if (!tableExists) {
me.createTable(transaction);
}
me.insertRecords(records, transaction, function(resultSet, errors) {
if (operation.process(operation.getAction(), resultSet) === false) {
me.fireEvent('exception', this, operation);
}
if (typeof callback == 'function') {
callback.call(scope || this, operation);
}
}, this);
});
},
createTable: function (transaction) {
var sql = 'CREATE TABLE IF NOT EXISTS ' + this.getTable() + ' (' + this.getSchemaString() + ')';
console.log(sql);
transaction.executeSql(sql, [],
function(tx, results) {
console.log("Success.");
console.log(results);
},
function(tx, errors) {
console.log("Fail.");
console.log(errors);
}
);
// Don't work either.
transaction.executeSql("Create Table item (id integer, TT text)");
this.setTableExists(true);
},
getDatabaseObject: function() {
return openDatabase(this.getDatabase(), '1.0', 'TDD Database', 5 * 1024 * 1024);
}
});