
Hi, I would like to resurrect the discussion about database support in Boost by posting here the following announcement: <announcement> I'm pleased to announce that the new release of the SOCI library is available for download. The homepage of the project is: http://soci.sourceforge.net/ The SOCI library is a database-access library that tries to mimic the syntax known from Embedded SQL, but staying within the standard C++. The target audience of the SOCI library are those developers, who need an efficient, but also straightforward and easy to use interface. This new release brings the following enhancements: 1. More extensive support for object-relational mapping. 2. A plug-in architecture for backends, which allows to target various database engines by simply linking with the chosen backend. Currently, the following database engines are supported (through their respective "native" interface): * Oracle * PostgreSQL </announcement> We have prepared a small rationale FAQ that can be of interest to you: <http://soci.sourceforge.net/doc/rationale.html>. We would like to put this library under consideration for inclusion into Boost, but before we will bother you with formal submission or anything like this, it should be acknowledged that SOCI, at the moment, does not support Microsoft servers. We would like to therefore invite those of you who have some expertise with ODBC or ADO to help us writing relevant backend. Contributions targetting other database engines are also welcome, of course. Regards, -- Maciej Sobczak : http://www.msobczak.com/ Programming : http://www.msobczak.com/prog/

Maciej Sobczak wrote:
2. A plug-in architecture for backends, which allows to target various database engines by simply linking with the chosen backend. Currently, the following database engines are supported (through their respective "native" interface):
The library looks very nice, and I might spend more time with it in the near future. I have one main question: what, if any, are the facilities of SOCI to hide database-specific details, or how could the current design accommodate such facilities? For example, if I were to write a MySQL backend, there are several differences in regards to datatypes from Oracle and the relatively easy portable PostgreSQL. Sebastian Redl

Sebastian Redl wrote:
2. A plug-in architecture for backends, which allows to target various database engines by simply linking with the chosen backend. Currently, the following database engines are supported (through their respective "native" interface):
The library looks very nice, and I might spend more time with it in the near future. I have one main question: what, if any, are the facilities of SOCI to hide database-specific details, or how could the current design accommodate such facilities?
There is an "isolating" layer in SOCI, marked as the "Common interface" on this page: http://soci.sourceforge.net/doc/structure.html
For example, if I were to write a MySQL backend, there are several differences in regards to datatypes from Oracle and the relatively easy portable PostgreSQL.
There is a fixed set of "base" datatypes (integer, string, time, etc.), which are identified by enums defined in soci-common.h. The actual backend needs to map those "base" types to whatever is available on the target server. The user-defined types can also be used with SOCI, in a variety of ways - but their conversion rules are always defined in terms of those "base" datatypes. -- Maciej Sobczak : http://www.msobczak.com/ Programming : http://www.msobczak.com/prog/

On 1/16/06, Maciej Sobczak <prog@msobczak.com> wrote:
Hi,
I would like to resurrect the discussion about database support in Boost by posting here the following announcement:
<announcement> I'm pleased to announce that the new release of the SOCI library is available for download. The homepage of the project is:
The SOCI library is a database-access library that tries to mimic the syntax known from Embedded SQL, but staying within the standard C++. The target audience of the SOCI library are those developers, who need an efficient, but also straightforward and easy to use interface.
This new release brings the following enhancements:
1. More extensive support for object-relational mapping.
2. A plug-in architecture for backends, which allows to target various database engines by simply linking with the chosen backend. Currently, the following database engines are supported (through their respective "native" interface):
* Oracle * PostgreSQL
</announcement>
We have prepared a small rationale FAQ that can be of interest to you: <http://soci.sourceforge.net/doc/rationale.html>.
We would like to put this library under consideration for inclusion into Boost, but before we will bother you with formal submission or anything like this, it should be acknowledged that SOCI, at the moment, does not support Microsoft servers. We would like to therefore invite those of you who have some expertise with ODBC or ADO to help us writing relevant backend. Contributions targetting other database engines are also welcome, of course.
Regards,
Hi Maciej, Library looks good! One things it's missing: a scoped_transaction class that does a rollback if it goes out of scope without you doing a .commit().
-- Maciej Sobczak : http://www.msobczak.com/ Programming : http://www.msobczak.com/prog/ _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Cory Nelson http://www.int64.org
participants (3)
-
Cory Nelson
-
Maciej Sobczak
-
Sebastian Redl