There shouldn't be too much under the hood. I just wanted to use the
lightest possible layer, and now I'm using to sqlite-net, so I use
that :)

Both, I think, talk directly to the sqlite3 library :)

On Wed, Sep 5, 2012 at 3:36 PM, Karl Heinz Brehme Arredondo
<[email protected]> wrote:
> Hey Nic, do you know if is there some difference between to use:
>
> 'connection.Query<Transaction>("select *
> from Transactions where TransactionDate between.... etc")'
>
> Instead Mono.Data.Sqlite?
>
> Karl
>
> From: Nic Wise <[email protected]>
> Date: quarta-feira, 5 de setembro de 2012 11:24
> To: Alex Soto <[email protected]>
> Cc: "[email protected]" <[email protected]>
> Subject: Re: [MonoTouch] Monotouch.Dialog and Reusable Cells
>
> Because, in sqlite-net (at least the version _I_ was using, which
> might be old), if I did (unchecked code!!):
>
> var items = from item in connection.Table<Transaction> where
> item.TransactionDate between X and Y select item;
>
> this would get all the items, then do the WHERE. So if I wanted 10
> lines from this year, but I had 1000 from last year, it would load
> 1010 items, and return 10.
>
> Not good. I changed it to use connection.Query<Transaction>("select *
> from Transactions where TransactionDate between.... etc") and I got
> the 10 back I wanted, in <10ms not 1-2 seconds.
>
> Same goes for summary's (select sum(Price) from....).
>
> For small data sets, or where you usually want ALL of them, the linq
> option is fine. But for getting a subset of a large set, or to get an
> aggregate of a large set, not so much.
>
> Frank might have changed it since I did that tho, to make the WHERE
> affect the sql, not do it after the objects are hydrated.
>
>
>
> On Wed, Sep 5, 2012 at 2:33 PM, Alex Soto <[email protected]> wrote:
>
> Hello Nic, something called my attention, why not to use LINQ??
>
> Hope you can elaborate on it
>
> Alex
>
>
>
> El 05/09/2012, a las 04:32 a.m., Nic Wise <[email protected]> escribió:
>
> Yes and no.
>
> Out of the box: no. HOWEVER, if you add 1000 items into the root, it's
> only making
>
> 5 + 3 + 3 (5 visible, 3 invisible above and below - basically: Visible
> + (50% of visible above) + (50% of visible below))
>
> actual cells, the rest is just managed objects, so fairly small. I've
> loaded 3500 elements into a list without any problem (make sure you
> load it OFF the main thread, and if you use Sqlite-net, dont use linq
> - use a SQL statement!)
>
> The YES part: you can work out where the scroll is, and dynamically
> load things when you get near the bottom. This doesn't work out of the
> box - you would need to work out which cells are visible, and if it's
> close enough to the end, load some more at the bottom.
>
> The other option is the "LoadMoreElement". This is in the
> "OldElements" folder, so it might need some work, but this allows you
> to put a cell in, the user taps it, and you can do whatever - load X
> more is the usual case.
>
> https://github.com/migueldeicaza/MonoTouch.Dialog/blob/master/MonoTouch.Dialog/OldElements/LoadMoreElement.cs
>
> You could do the same tho - put a cell at the bottom, and if it's
> loaded (GetCell is called), then do the load in a background thread
> and insert the new cells above the "bottom" loader cell.
>
> Lots of ways :)
>
> N
>
> On Tue, Sep 4, 2012 at 8:32 PM, Guido Van Hoecke <[email protected]> wrote:
>
> Hi Nic,
>
> Thanks for your answer.
>
> I should have phrased my question more precisely. Is it possible to not
> instantiate all Elements and add them to the RootElement before the view
> does appear, but rather create them as needed within a kind of
> GetElement method?
>
> Guido
>
> On 4 September 2012 13:08, Nic Wise <[email protected]> wrote:
>
> Absolutely :)
>
> The default ones already do this
>
> https://github.com/migueldeicaza/MonoTouch.Dialog/blob/master/MonoTouch.Dialog/Elements.cs#L271
>
> (and it's in other places too)
>
> IF you have made your own element, you are responsible for doing it,
> but you can, easily, do it.
>
> I suggest you split your GetCell into 2 parts:
>
> https://gist.github.com/3620212
>
> If you set colors, dont forget to reset it for each one - otherwise
> you end up with red bits where you want green etc :)
>
>
>
>
> On Tue, Sep 4, 2012 at 11:53 AM, Guido Van Hoecke <[email protected]> wrote:
>
> Hi,
>
> My app happily uses the Monotouch.Dialog framework.
>
> Some of its dialogs list values from a database. Basically my approach
> is to create a new DialogViewController and wait for the
> ViewWillAppear event.
>
> The corresponding event handler creates a new RootElement and fully
> populates it with an Element for each of the retrieved database rows.
>
> I realise that this would e.g. build 1k cells for 1k rows, so I
> probably should dequeue reusable cells and only build the Elements as
> requested by the GetCell method.
>
> Is this possible within the MT.D framework using RootElement, Section
> and Element objects?
>
> Thanks in advance
>
> Guido
>
> --
> It is the nature of extreme self-lovers, as they will
> set a house on fire, and it were but to roast their eggs.
>                 -- Francis Bacon
>
> http://vanhoecke.org ... and go2 places!
> _______________________________________________
> MonoTouch mailing list
> [email protected]
> http://lists.ximian.com/mailman/listinfo/monotouch
>
>
>
>
> --
> Nic Wise
> t.  +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise
> b. http://www.fastchicken.co.nz/
>
> mobileAgent (for FreeAgent): get your accounts in your pocket.
> http://goo.gl/IuBU
> Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa
> Earnest: Self-employed? Track your business expenses and income.
> http://earnestapp.com
> Nearest Bus: find when the next bus is coming to your stop.
> http://goo.gl/Vcz1p
> London Bike App: Find the nearest Boris Bike, and get riding!
> http://goo.gl/Icp2
>
>
>
>
> --
> Nic Wise
> t.  +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise
> b. http://www.fastchicken.co.nz/
>
> mobileAgent (for FreeAgent): get your accounts in your pocket.
> http://goo.gl/IuBU
> Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa
> Earnest: Self-employed? Track your business expenses and income.
> http://earnestapp.com
> Nearest Bus: find when the next bus is coming to your stop.
> http://goo.gl/Vcz1p
> London Bike App: Find the nearest Boris Bike, and get riding!
> http://goo.gl/Icp2
> _______________________________________________
> MonoTouch mailing list
> [email protected]
> http://lists.ximian.com/mailman/listinfo/monotouch
>
>
>
>
> --
> Nic Wise
> t.  +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise
> b. http://www.fastchicken.co.nz/
>
> mobileAgent (for FreeAgent): get your accounts in your pocket.
> http://goo.gl/IuBU
> Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa
> Earnest: Self-employed? Track your business expenses and income.
> http://earnestapp.com
> Nearest Bus: find when the next bus is coming to your stop.
> http://goo.gl/Vcz1p
> London Bike App: Find the nearest Boris Bike, and get riding!
> http://goo.gl/Icp2
> _______________________________________________
> MonoTouch mailing list
> [email protected]
> http://lists.ximian.com/mailman/listinfo/monotouch
>



-- 
Nic Wise
t.  +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise
b. http://www.fastchicken.co.nz/

mobileAgent (for FreeAgent): get your accounts in your pocket.
http://goo.gl/IuBU
Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa
Earnest: Self-employed? Track your business expenses and income.
http://earnestapp.com
Nearest Bus: find when the next bus is coming to your stop. http://goo.gl/Vcz1p
London Bike App: Find the nearest Boris Bike, and get riding! http://goo.gl/Icp2
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch

Reply via email to