[libgdamm] Connection: Add statement_execute_non_select_builder(SqlBuilder)



commit ef00f248f38a2d2660877dc802c038c0decf0e61
Author: Murray Cumming <murrayc murrayc com>
Date:   Sat Feb 27 15:04:42 2010 +0100

    Connection: Add statement_execute_non_select_builder(SqlBuilder)
    
      * libgda/src/connection.[hg|ccg]: Added statement_execute_non_select_builder()
      overloads that take SqlBuilder, to avoid the need to generate a statement
      from a builder.

 ChangeLog                 |   10 ++++++++-
 libgda/src/connection.ccg |   50 +++++++++++++++++++++++++++++++++++++++++++++
 libgda/src/connection.hg  |   18 +++++++++++++++-
 3 files changed, 76 insertions(+), 2 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 43652c3..44a3904 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,14 @@
+2010-02-27  Murray Cumming  <murrayc murrayc-x61>
+
+  Connection: Add statement_execute_non_select_builder(SqlBuilder)
+  
+  * libgda/src/connection.[hg|ccg]: Added statement_execute_non_select_builder()
+  overloads that take SqlBuilder, to avoid the need to generate a statement 
+  from a builder.
+
 2010-02-27  Murray Cumming  <murrayc murrayc com>
 
-  Connection, SqlBuilder: Addd some convenient method overloads.
+  Connection, SqlBuilder: Add some convenient method overloads.
   
 	* libgda/src/connection.[hg|ccg]: statement_execute_select(statement, params):
 	Add an optional model_usage parameter, as already exists on other method 
diff --git a/libgda/src/connection.ccg b/libgda/src/connection.ccg
index f3f19d1..abb71fd 100644
--- a/libgda/src/connection.ccg
+++ b/libgda/src/connection.ccg
@@ -223,6 +223,56 @@ int Connection::statement_execute_non_select(const Glib::RefPtr<const Statement>
 }
 
 #ifdef GLIBMM_EXCEPTIONS_ENABLED
+int Connection::statement_execute_non_select_builder(const Glib::RefPtr<const SqlBuilder>& builder)
+#else
+int Connection::statement_execute_non_select_builder(const Glib::RefPtr<const SqlBuilder>& builder, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  Glib::RefPtr<Gnome::Gda::Statement> stmt;
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  stmt = builder->get_statement(); //Allow any exceptions to be thrown up to the caller.
+#else
+  stmt = builder->get_statement(error);
+  if(error.get())
+    return 0;
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  if(!stmt)
+     return 0;
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  return statement_execute_non_select(stmt);
+#else
+  return statement_execute_non_select(stmt, error);
+#endif
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+int Connection::statement_execute_non_select_builder(const Glib::RefPtr<const SqlBuilder>& builder, const Glib::RefPtr<const Set>& params)
+#else
+int Connection::statement_execute_non_select_builder(const Glib::RefPtr<const SqlBuilder>& builder, const Glib::RefPtr<const Set>& params, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+{
+  Glib::RefPtr<Gnome::Gda::Statement> stmt;
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  stmt = builder->get_statement(); //Allow any exceptions to be thrown up to the caller.
+#else
+  stmt = builder->get_statement(error);
+  if(error.get())
+    return 0;
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+  if(!stmt)
+     return 0;
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  return statement_execute_non_select(stmt, params);
+#else
+  return statement_execute_non_select(stmt, params, error);
+#endif
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
 Glib::ustring Connection::statement_to_sql(const Glib::RefPtr<const Statement>& statement, const Glib::RefPtr<const Set>& params, StatementSqlFlag flags, std::list< Glib::RefPtr<Holder> >& params_used) const
 #else
 Glib::ustring Connection::statement_to_sql(const Glib::RefPtr<const Statement>& statement, const Glib::RefPtr<const Set>& params, StatementSqlFlag flags, std::list< Glib::RefPtr<Holder> >& params_used, std::auto_ptr<Glib::Error>& error) const
diff --git a/libgda/src/connection.hg b/libgda/src/connection.hg
index bc130f4..65e91cd 100644
--- a/libgda/src/connection.hg
+++ b/libgda/src/connection.hg
@@ -202,9 +202,25 @@ public:
 #else
   int statement_execute_non_select(const Glib::RefPtr<const Statement>& stmt, std::auto_ptr<Glib::Error>& error);
 #endif //GLIBMM_EXCEPTIONS_ENABLED
-  
+
   _WRAP_METHOD(int statement_execute_non_select(const Glib::ustring& sql), gda_execute_non_select_command, errthrow)
   
+
+//TODO: Documentation:
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  int statement_execute_non_select_builder(const Glib::RefPtr<const SqlBuilder>& builder);
+#else
+  int statement_execute_non_select_builder(const Glib::RefPtr<const SqlBuilder>& builder, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+//TODO: Documentation:
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  int statement_execute_non_select_builder(const Glib::RefPtr<const SqlBuilder>& builder, const Glib::RefPtr<const Set>& params);
+#else
+  int statement_execute_non_select_builder(const Glib::RefPtr<const SqlBuilder>& builder, const Glib::RefPtr<const Set>& params, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+
+
   //Note that we do not add a non-const version of this because the documentation says that it should not be modified:
   _WRAP_METHOD(Glib::RefPtr<const TransactionStatus> get_transaction_status() const, gda_connection_get_transaction_status, errthrow, refreturn)
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]