From ec43590b14924bdb2ab2afe4b9b705ab05a52901 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 18 Jan 2011 11:21:02 +0200 Subject: Add support for native SQL statement execution New test: mysql/native. New manual section: 3.9, "Executing Native SQL Statements". --- odb/database.hxx | 13 +++++++++++++ odb/database.ixx | 14 ++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'odb') diff --git a/odb/database.hxx b/odb/database.hxx index e007a56..bc7a10b 100644 --- a/odb/database.hxx +++ b/odb/database.hxx @@ -9,6 +9,7 @@ #include #include +#include // std::size_t #include #include @@ -142,6 +143,18 @@ namespace odb query (const odb::query::object_type>&, bool cache = true); + // Native database statement execution. + // + public: + unsigned long long + execute (const char* statement); + + unsigned long long + execute (const std::string& statement); + + virtual unsigned long long + execute (const char* statement, std::size_t length) = 0; + // Transaction API. // public: diff --git a/odb/database.ixx b/odb/database.ixx index 42e8ac7..252f866 100644 --- a/odb/database.ixx +++ b/odb/database.ixx @@ -3,6 +3,8 @@ // copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file +#include // std::string + namespace odb { inline database:: @@ -204,4 +206,16 @@ namespace odb return query (odb::query (q), cache); } + + inline unsigned long long database:: + execute (const char* statement) + { + return execute (statement, std::strlen (statement)); + } + + inline unsigned long long database:: + execute (const std::string& statement) + { + return execute (statement.c_str (), statement.size ()); + } } -- cgit v1.1