Boost logo

Boost :

From: Maciej Sobczak (prog_at_[hidden])
Date: 2007-03-15 12:35:54


Jeff Garland wrote:

>> Query<string,int> insert_thing(db, "insert into things(name,qty) values ($1,$2)");
>> SingletonQuery<int, string> count_things(db, "select sum(qty) from
>> things where name=$1");
>>
>> insert_thing("table",1);
>> insert_thing("chair",4);
>> int n_pens = count_things("pen");
>
> Very interesting...

Indeed.

> Also, it might be interesting to
> try and port your interface to the SOCI core...I see no reason why your
> interface wouldn't be a possible alternative or addition to the existing SOCI
> setup.

Actually, SOCI already has the necessary framework for this.
We have a Rowset<> class and we plan to add support for tuple as its
template parameter (we haven't thought about multiple parameters there).
For the moment it looks like this:

http://soci.sourceforge.net/doc/statements.html#rowset

And even without the Rowset, creating such functors that will internally
translate to:

sql << "insert ...", use(x), use(y), use(z);

or:

sql << "select ...", into(x), into(y), into(z):

or any such combination (while preserving the type safety) doesn't seem
to be much of a problem. It doesn't seem to be much necessary neither -
unless we state clearly that our objective is to support absolutely
every syntax sugar that any individual cares to invent. ;-)

-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk