The goal of Boost.SqlCli is to provide the lowest abstraction layer that may effectively hide the details of the underlying database technology. This choice comes for the observation that there are many possible approaches to a more abstract representation of a database and there is no consensus on a best one. Actually I’m convinced that different applications are best served by different ways of using RDMBS’s.
However, at the lowest level, all these different approaches tend to share a remarkably uniform architecture, whose main elements are connections, statements and result sets. This architecture may be observed in many different existing libraries, such as SOCI, SQLAPI++ and CodeGear‘s VCL, just to mention those I’m most familiar with.
In order to be useful as a building block for higher level solutions Boost.SqlCli should be limited to the minimal feature set that proves to be convenient in performing queries to a database and retrieving the corresponding results. Trying to be too helpful may well result in choices that do not match well with other libraries’ needs.
Last but not least the library should be pleasant to use by competent programmers, but simple enough not to scare beginners away. The ultimate goal is to come up with a design that is worthy of submission to the C++ standard committee.
Whether I’ll be up to fulfilling these goals remains to be seen 🙂