Boost.SqlCli’s design goals

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 🙂


2 Responses to “Boost.SqlCli’s design goals”

  1. is Says:

    Damn your library looks good, I downloaded the one from Boost vault, I think you should polish it up asap and submit to Boost for review.

    Does it support gcc, this is a must have?
    Does it support database plugins eg. mysql, postgre etc like SOCI?


  2. nmusatti Says:

    Currently I’m supporting MinGW gcc 3.4.5, Visual C++ 8.0, Borland C++ Builder 2006 and C++ Builder 6.

    I don’t plan to support plugins in the true sense of the word, but the library should be designed to make it reasonably easy to provide backends for different database technologies. At the moment the only one available is a rather incomplete ODBC backend; I’ve received offers for help in implementing an Oracle and a PostgreSQL one, but there’s nothing actually going on yet.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: