The Sencha Command issue is now fixed. It's not the world's prettiest fix, but it works. NB: the fix is in the demo files, NOT the proxy itself. Specifically look at the model definition and the util class.

I changed the Ext.Loader.setPath call and removed the source within the demo directory so make sure your setPath call is pointing to where the sqlite directory is, relative to app.js. Ext.Loader needs this during testing to load in the files and sencha command needs it to grab the contents of the sqlite files to put them into the single app.js file for production or testing builds.

* 2012/05/14 SENCHA COMMAND COMPATIBILITY *
An issue with the demo app not working when it's been built into production or testing (ie, into a single js file) has been sorted.

It's a fix that works; for some reason when Sencha is in a single file the models will be initiated and their proxies created BEFORE the onReady method of the Ext.Application call is executed. In a pre-build, multi-file development environment, the model calls are after.

NB: I have also changed the Ext.Loader.SetPath call in the app.js of the demo so the source code for the sqliteproxy is only included once in the root of the repository (rather than twice - ie, it's no longer copied in the demo directory).

No worries! I think it's all to do with everything being in one file, and having the contents of app.js at the bottom... javascript hits and executes the model code before the Ext.Application can call the onReady method. Annoying! Different variants of that issue have hit different areas of my code before...

TA's proxy's function was called queryDB - while that's true, it was doing it within a transaction so I renamed the function transactionDB, and changed it to accept multiple queries.

Also, it's not best practice to do things in this way, because if I change the way the proxy works internally in the future, perhaps to fix a bug, you might be stuck with the buggy version if your SQL statement is not compatible with the new schemas the proxy creates.

Better practice is to load the data into a store using an XML proxy, and then copy across the data to another store with the sqlite proxy (or.... set the original store's proxy to an sqlite proxy, and then set all records to dirty or phantom and resave).

If you still want to go ahead with the way you're doing things now, you need to use the transactionDB method of the proxy. This accepts the following parameters:
dbConn - just use proxy.getDb() (in a future version, I really should lose this parameter as it's not necessary)
queries - an array of functions that accept tx as a parameter and execute queries
successcallback - called on transaction success
errorcallback - called on transaction error
callback - always called at end of transaction (I don't advise using this as it's currently in the incorrect place in the code, no-one said this was a final release yet haha!)

This is my current class but I somehow don't get how I can use a function from the plugin from here inside this class. I tried extending from the sqlite plugin but then I need to pass a config object or I get the error: TypeError: Cannot read property 'dbConn' of nullI Hope you can help me on that point :/

Ok, here's the deal... the way you're doing it right now is ugly and not best practice. I'm more than happy to help doing it the best way I can think of (loading using xml parser). Do you want to post your model config and a sample XML? Also, do you have control of the XML file - ie, can you change its contents or is it fixed as it is?

I note that your sencha touch field names are different from the XML attribute names. I believe we can use mapping to adapt this on the field configurations, but I've not done this before nor have I seen another example! Here's the link:

I've not done this myself before, but it looks like you just need to set the mapping attribute of each field to a query that will match it in the dom. May need some trial and error here! Likely you need to have something like this for each field that is different on the model:

Code:

{ name: 'imagebig', type: 'string', mapping: 'bildgross' }

I'm not sure if that exactly will work, look into the query format you need for the 'bildgross' string...