An experimental SQL connector for containers and streams of the C++ Standard Library
Well, sqlpp11 has this wonderful expression tree. It makes it really easy to connect to databases. And you know what? You can even treat containers or streams from the C++ Standard Library as databases! How cool is that?
namespace sql = sqlpp::container;
struct sample
{
int64_t alpha;
std::string beta;
bool gamma;
};
int main()
{
using container = std::vector<sample>;
container data;
sql::connection<container> db(data);
sample tab;
db.run(insert_into(tab).set(tab.alpha = 17));
db.run(insert_into(tab).set(tab.beta = "cheesecake"));
db.run(insert_into(tab).set(tab.alpha = 42, tab.beta = "hello", tab.gamma = true));
db.run(insert_into(tab).set(tab.gamma = true));
for (const sample& row: db.run(select(all_of(tab(tab))
.from(tab)
.where(tab.alpha < 18)))
{
std::cerr << "alpha=" << row.alpha <<
", beta=" << row.beta <<
", gamma=" << row.gamma << std::endl;
}
return 0;
}
That works???
Oh yes! Check it out. You need:
- A current C++11 compiler (clang-3.2 and g++-4.8 are known to work on Ubuntu)
- sqlpp11: https://github.com/rbock/sqlpp11
- And this library, of course
Stay tuned for more :-)