SQLite3 Phobos branch

Alex Khmara alex.khmara at gmail.com
Sun Apr 24 16:19:13 PDT 2011


On Mon, 25 Apr 2011 01:49:16 +0300, Robert Clipsham  
<robert at octarineparrot.com> wrote:

> On 24/04/2011 21:40, dsimcha wrote:
>> However, it seems others in the community are interested in a more
>> general SQL DB wrapper that can be used with a variety of backends.
>> Now that no GSoC database project has been accepted, we need to
>> consider other options for getting this done. I understand that there
>> are a lot of independent attempts, but I don't know the status of
>> them or which ones, if any, are targeting eventual inclusion in
>> Phobos.
>
> I have a general SQL db wrapper (only wrapping SQLite currently), which  
> I'd be happy to adapt and submit for phobos, I'm currently working on a  
> complete rewrite though, so this may not be a great idea right now.
>
> Example usage:
> ----
> struct Post
> {
>      int id;
>      DateTime time;
>      string title;
>      string content;
> }
>
> auto getPosts(long lim, long offs=0)
> {
>      with (new SqlQuery)
>      {
>          select("*").from("blog")
>                     .limit(lim)
>                     .offset(offs);
>          return execute!(Post)();
>      }
> }
> foreach(post; getPosts(10))
> {
>      // Operate on posts
> }
> ----
>
> The new interface makes the above even simpler, it will look something  
> like (rather rough, I'm in the early stages of implementing it):
> ----
> struct Post
> {
>      int id;
>      DateTime time;
>      string title;
>      string content;
> }
>
> auto posts = new SqlitePersister!Post(new SqliteDb("my.db"));
> foreach(post; posts[0..10])
> {
>      // Operate on posts
> }
> ----
>
> Of course, both of these provide (or will provide) an interface to allow  
> for SQL statements to be executed directly.
>

Is it possible to see code somewhere? It would be interesting to get rid of
raw SQL, but retain access to it's parts - but I'm not sure how many  
constructs
you can handle in this way - for example, what about complex queries with  
joins?
What about subqueries?


More information about the Digitalmars-d mailing list