如何删除websql中的字段

时间:2013-08-19 09:33:14

标签: extjs sencha-touch sencha-touch-2 web-sql

我使用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();

                    }
            }
        ]
    }
]

2 个答案:

答案 0 :(得分: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){});
});

答案 1 :(得分: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();

如何调试

的console.log(索引); //如果匹配则应返回值0否则返回-1。

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