0

我使用 Sencha 在我的 websql 中创建了一个表。向表中添加值可以正常工作,但删除不起作用。

我试过了

getStore('favorite').removeAt(1);

但它没有结果。有没有办法处理 sql 请求,比如

"Delete from favorite where id = 1" 

我整天都在谷歌上搜索。有任何想法吗?代码如下:

dockedItems: [
    {
        xtype: 'toolbar',
        dock: 'top',
        items: [
            {   

                text: '+',
                ui: 'decline',
                handler: function(){ 
                    var s_name = post.get('list');
                    var s_image = post.get('image');
                    //var s_type = record.get('code');
                    //var c_content = post.get('filmpage');
                    //alert('РаботаетЬ');

                    Ext.require(['Ext.data.proxy.SQL']);
                    Ext.define("Favorite", {
                        extend: "Ext.data.Model",
                        config: {
                        fields: ["id","name","ftype","image","link","res"]
                    }
                    });

                    Ext.create("Ext.data.Store", {
                    model: "Favorite",
                        storeId: 'Favorite',
                        proxy: {
                        type: "sql"
                        }
                    });

                    var store = Ext.getStore('Favorite');
                    Ext.getStore('Favorite').removeAt(1);
                    Ext.getStore('Favorite').sync();

                    var record = Ext.getStore('Favorite').findExact('id', 1);
                    Ext.getStore('Favorite').remove(record);
                    Ext.getStore('Favorite').sync();



                    /*Ext.getStore('Favorite').add([{
                        name: s_name,
                        ftype: cat,
                        image: s_image,
                        link: '',
                        res : '',
                    }]);


                    Ext.getStore('Favorite').sync();*/

                    //Ext.getStore("Users").getModel("Users").getProxy("Users").dropTable("Favorite");
                    //Ext.getStore("Favorite").getModel("Ext.data.Model").getProxy().dropTable();

                    }
            }
        ]
    }
]
4

2 回答 2

1

找到使用 js 的解决方案,仍然非常感谢您的帮助。

db = openDatabase("Sencha", "1.0", "Sencha", 200000);

if(!db)                                                                                         
   alert("Failed to connect to database.");   
else                      
  alert('yeah');

db.transaction(function(tx) {
 tx.executeSql("DELETE FROM Favorite WhERE id = 3 ", [], function(result){}, function(tx, error){});
});
于 2013-08-20T06:29:18.443 回答
0

您应该sync在删除记录后

var store = Ext.getStore('favorite');
store.removeAt(1);
store.sync();

更新

var index = store.findExact('id', 1);       
store.remove(store.getAt(index));
store.sync();

如何调试

控制台.log(索引);// 如果有匹配则返回值 0,否则返回 -1。

console.log(store.getAt(index)); // 应该返回 id 值为 1 的记录。

于 2013-08-19T09:45:25.450 回答