SOCI is a database access libraryfor C++ that makes the illusion of embeddingSQL queries in the regularC++ code, staying entirely within the Standard C++.
The idea is to provide C++ programmers a way to access SQLdatabases in the most natural and intuitive way. If you find existinglibraries too difficult for your needs or just distracting, SOCI can bea good alternative.
The simplest motivating code example for the SQL query that is supposedto retrieve a single row is:
int id = ...; string name; int salary; sql << "select name, salary from persons where id = " << id, into(name), into(salary);
and the following benefits from extensive support for object-relationalmapping:
int id = ...; Person p; sql << "select first_name, last_name, date_of_birth " "from persons where id = " << id, into(p);
Integration with STL is also supported:
Rowset<string> rs = (sql.prepare << "select name from persons"); copy(rs.begin(), rs.end(), ostream_iterator<string>(cout, "\n"));
SOCI offers also extensive integration with Boost datatypes (optional, tuple and fusion) and flexible supportfor user-defined datatypes.
Even though SOCI is mainly a C++ library, it also allows to use it from other programming languages. Currently the package contains the Ada binding, with more bindings likely to come in the future.
Starting from its 2.0.0 release, SOCI uses the plug-in architecture forbackends - this allows to target various database servers. Currently (3.1.0),the following database servers are supported:
- MySQL
- ODBC (generic backend)
- Oracle
- PostgreSQL
- SQLite3
The intent of the library is to cover as many database technologies aspossible. For this, the project has to rely on volunteer contributionsfrom other programmers, who have expertise with the existing databaseinterfaces and would like to help writing dedicated backends.
If you are interested in participating, please contact the project admin.
The SOCI library is distributed under the terms of the BoostSoftware License.
The current stable release (3.1.0) can be downloaded here, and all previous releases are available here.
The latest and experimental version of the code is always available fromthe Git repository.
Anonymous clone of this repository can be obtained with:
$ git clone git://soci.git.sourceforge.net/gitroot/soci/soci
To meet other users, please consider subscribing to the SOCImailing list.
SOCI是一款C++数据库访问库,它提供了一种直观的方式将SQL查询嵌入到标准C++代码中。该库简化了数据库操作,并支持对象关系映射,同时集成了STL,提供了对Boost数据类型的广泛支持。SOCI还允许从其他编程语言使用,并采用了插件架构以支持多种数据库服务器。
4034

被折叠的 条评论
为什么被折叠?



