Database interface design - was how to build up the library.

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Fri Oct 7 10:06:20 PDT 2011


On 10/7/11 12:02 PM, Piotr Szturmaj wrote:
> Andrei Alexandrescu wrote:
>> 1. MFC had at a point a wizard that generated one struct per resultset.
>> It was an absolute maintenance disaster and they recanted by offering
>> dynamically-bound result sets. The lesson there is that defining a
>> struct for each query won't likely play out, so we better use
>> Tuple!(ColType1, ColType2, ...). A possible API would be:
>>
>> auto db = std.database.connect("cdb.mysql");
>> auto rows = db.sql!(double, ulong)
>> ("SELECT SUM(x), COUNT(x) FROM table");
>> // We know that rows is a range of Tuple!(double, ulong).
>> writeln("Sum is ", rows.front[0], " count is ", rows.front[1]);
>>
>> Cool beans. I'd love to use such an API!
>> Andrei
>
> Did you see http://pszturmaj.github.com/ddb/db.html ? It maps tuples,
> structs and arrays in similar manner.

I did. Looks good. Why do you need DBRow? You could simply use 
Variant[], the given struct, or Tuple directly.

Andrei


More information about the Digitalmars-d mailing list