Relational database library (was: [GSOC] Are we going to participate?)

On 14 February 2013 09:40, Roland Bock <rbock@eudoxos.de> wrote:
- relational database library (what ever happened with boost and soci?) FYI: I am currently working on a C++11 SQL library. Once you declare your
On 2013-02-14 06:04, Michael Marcin wrote: table structures in C++, it will allow you to express queries very close to SQL: For example:
TabSample t; auto results = sql::select(sql::distinct, t.b, t.c) .from(t) .where(t.a > 7 and t.b != "cheesecake") .order_by(t.c).run(db);
for (auto row: results) { int a = row.a; std::string c = row.c; }
The library will take care of escaping (to prevent code injection), the compiler will enforce type safety (e.g. disallow comparison of integral and string values). There will also be a lot of sanity checks at compile time, for instance you cannot call .from() twice. It will even be able to tell you, if you are referencing tables, which are missing in .from(), etc.
No more string concatenation and hoping to get the syntax right. The compiler will tell you, if you do it wrong. No more indexed access to string results. Result rows will allow you to access individual columns by name (and they will have a decent type). [...]
Roland, It all sounds exciting. I remember the discussion long time ago we had, with similar ideas brainstormed [1], where you also asked this question, later discussed with Maciej: "Maybe it would make sense to add such a layer as an option to SOCI?" FYI, in SOCI, we're planning [2] to move SOCI towards C++11 It likely may happen during SOCI 4.0.0 release. So, I'd be interested in taking another look at this and having such layer adopted in SOCI too. Where I could learn about your solution more? [1] http://lists.boost.org/Archives/boost/2010/09/170983.php [2] https://github.com/SOCI/soci/wiki/Roadmap Best regards, -- Mateusz Loskot, http://mateusz.loskot.net
participants (1)
-
Mateusz Loskot